{"id":970,"date":"2024-06-22T14:53:41","date_gmt":"2024-06-22T06:53:41","guid":{"rendered":"http:\/\/www.o6s.net\/?p=970"},"modified":"2025-10-25T22:51:53","modified_gmt":"2025-10-25T14:51:53","slug":"%e6%90%ad%e5%bb%baopeneuler%e9%95%9c%e5%83%8f%e7%ab%99","status":"publish","type":"post","link":"https:\/\/www.o6s.net\/index.php\/2024\/06\/22\/%e6%90%ad%e5%bb%baopeneuler%e9%95%9c%e5%83%8f%e7%ab%99\/","title":{"rendered":"\u642d\u5efaopenEuler\u955c\u50cf\u7ad9"},"content":{"rendered":"<h3 id=\"\u80cc\u666f\" tabindex=\"-1\">\u80cc\u666f<\/h3>\n<p>\u793e\u533a \u5f00\u53d1\u8005\u5e0c\u671b\u642d\u5efa\u4e00\u5957\u79c1\u6709\u955c\u50cf\u7ad9\u3002\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 docker \u5feb\u901f\u90e8\u7f72 openEuler \u955c\u50cf\u7ad9\u3002<\/p>\n<hr \/>\n<h3 id=\"\u73af\u5883\u51c6\u5907\" tabindex=\"-1\">\u73af\u5883\u51c6\u5907<\/h3>\n<p>\u865a\u62df\u673a: 1\u53f0 4U8G(\u6839\u636e\u5b9e\u9645\u8d44\u6e90\u6d88\u8017\u8c03\u6574)<\/p>\n<p>\u64cd\u4f5c\u7cfb\u7edf: openEuler 22.03<\/p>\n<p>\u5b89\u88c5docker\u73af\u5883:<\/p>\n<p>yum install -y docker<\/p>\n<p>\u521b\u5efa\u955c\u50cf\u5b58\u653e\u76ee\u5f55:<\/p>\n<p>mkdir -p \/opt\/openeuler<\/p>\n<h3 id=\"docker\u955c\u50cf\u5236\u4f5c\" tabindex=\"-1\">docker\u955c\u50cf\u5236\u4f5c<\/h3>\n<ul>\n<li><strong>\u521b\u5efanginx.conf<\/strong>\n<div class=\"language- vp-adaptive-theme\">\n<pre class=\"shiki shiki-themes github-light github-dark vp-code\" tabindex=\"0\"><code><span class=\"line\">user root;<\/span>\r\n\r\n<span class=\"line\">error_log \/dev\/stdout info;<\/span>\r\n\r\n<span class=\"line\">pid \/var\/run\/nginx.pid;<\/span>\r\n\r\n<span class=\"line\">worker_processes 2;<\/span>\r\n<span class=\"line\">worker_rlimit_nofile 1024;<\/span>\r\n<span class=\"line\">events {<\/span>\r\n<span class=\"line\">use epoll;<\/span>\r\n<span class=\"line\">worker_connections 1024;<\/span>\r\n<span class=\"line\">}<\/span>\r\n\r\n<span class=\"line\">http {<\/span>\r\n<span class=\"line\">include \/etc\/nginx\/mime.types;<\/span>\r\n\r\n<span class=\"line\">log_format main '[\\$time_local] remote_addr: \\$remote_addr, request: \"\\$request\", '<\/span>\r\n<span class=\"line\">'status: \\$status, body_bytes_sent: \\$body_bytes_sent, http_referer: \"\\$http_referer\", '<\/span>\r\n<span class=\"line\">'http_user_agent: \"\\$http_user_agent\"';<\/span>\r\n\r\n<span class=\"line\">access_log \/dev\/stdout main;<\/span>\r\n\r\n<span class=\"line\">server_tokens off;<\/span>\r\n\r\n<span class=\"line\">autoindex off;<\/span>\r\n\r\n<span class=\"line\">port_in_redirect off;<\/span>\r\n<span class=\"line\">absolute_redirect off;<\/span>\r\n\r\n<span class=\"line\">client_header_buffer_size 1k;<\/span>\r\n<span class=\"line\">large_client_header_buffers 4 8k;<\/span>\r\n<span class=\"line\">client_body_buffer_size 1K;<\/span>\r\n<span class=\"line\">client_max_body_size 1k;<\/span>\r\n\r\n<span class=\"line\">client_header_timeout 8;<\/span>\r\n<span class=\"line\">client_body_timeout 8;<\/span>\r\n<span class=\"line\">client_body_in_file_only off;<\/span>\r\n\r\n<span class=\"line\">keepalive_timeout 5 5;<\/span>\r\n<span class=\"line\">send_timeout 8;<\/span>\r\n\r\n<span class=\"line\">proxy_hide_header X-Powered-By;<\/span>\r\n<span class=\"line\">proxy_request_buffering off;<\/span>\r\n\r\n<span class=\"line\">limit_conn_zone \\$binary_remote_addr zone=limitperip:10m;<\/span>\r\n<span class=\"line\">limit_req_zone \\$binary_remote_addr zone=ratelimit:10m rate=1000r\/s;<\/span>\r\n\r\n<span class=\"line\">gzip on;<\/span>\r\n<span class=\"line\">gzip_min_length 1k;<\/span>\r\n<span class=\"line\">gzip_buffers 4 16k;<\/span>\r\n<span class=\"line\">gzip_comp_level 5;<\/span>\r\n<span class=\"line\">gzip_types text\/plain application\/x-javascript text\/css application\/xml text\/javascript application\/javascript application\/x-httpd-php application\/json;<\/span>\r\n<span class=\"line\">gzip_vary on;<\/span>\r\n\r\n<span class=\"line\">server {<\/span>\r\n<span class=\"line\">    listen 8080;<\/span>\r\n<span class=\"line\">    server_name  example.com;<\/span>\r\n<span class=\"line\">    charset utf-8;<\/span>\r\n\r\n<span class=\"line\">    limit_conn limitperip 10;<\/span>\r\n\r\n<span class=\"line\">    if (\\$request_method !~ ^(GET|HEAD)\\$) {<\/span>\r\n<span class=\"line\">    return 444;<\/span>\r\n<span class=\"line\">    }<\/span>\r\n\r\n<span class=\"line\">    location ~ \/\\. {<\/span>\r\n<span class=\"line\">    deny all;<\/span>\r\n<span class=\"line\">    return 404;<\/span>\r\n<span class=\"line\">    }<\/span>\r\n\r\n<span class=\"line\">    location \/ {<\/span>\r\n<span class=\"line\">        root   \/repo\/openeuler;<\/span>\r\n<span class=\"line\">        fancyindex on;<\/span>\r\n<span class=\"line\">        fancyindex_exact_size off;<\/span>\r\n<span class=\"line\">        autoindex   on;<\/span>\r\n<span class=\"line\">    }<\/span>\r\n\r\n<span class=\"line\">    location = \/favicon.ico {<\/span>\r\n<span class=\"line\">        log_not_found off;<\/span>\r\n<span class=\"line\">        access_log off;<\/span>\r\n<span class=\"line\">    }<\/span>\r\n<span class=\"line\">}<\/span>\r\n<span class=\"line\">}<\/span><\/code><\/pre>\n<\/div>\n<\/li>\n<li><strong>\u521b\u5efanginx Dockerfile<\/strong>\n<div class=\"language- vp-adaptive-theme\">\n<pre class=\"shiki shiki-themes github-light github-dark vp-code\" tabindex=\"0\"><code><span class=\"line\">FROM openeuler\/openeuler:22.03-lts-sp1  <\/span>\r\n\r\n<span class=\"line\">WORKDIR \/opt\/nginx<\/span>\r\n\r\n<span class=\"line\">RUN yum update -y \\ <\/span>\r\n<span class=\"line\">    &amp;&amp; yum install -y pcre-devel openssl-devel gcc telnet wget curl make libxslt libxslt-devel gd gd-devel git \\ <\/span>\r\n<span class=\"line\">    &amp;&amp; mkdir -p \/etc\/nginx\/modules \\<\/span>\r\n<span class=\"line\">    &amp;&amp; git clone https:\/\/github.com\/aperezdc\/ngx-fancyindex.git \/etc\/nginx\/modules\/ngx-fancyindex \\<\/span>\r\n<span class=\"line\">    &amp;&amp; cd \/opt\/nginx \\<\/span>\r\n<span class=\"line\">    &amp;&amp; wget http:\/\/nginx.org\/download\/nginx-1.24.0.tar.gz \\<\/span>\r\n<span class=\"line\">    &amp;&amp; tar zxf nginx-1.24.0.tar.gz  \\<\/span>\r\n<span class=\"line\">    &amp;&amp; sed -i \"s|Server: nginx|Server: |\" nginx-1.24.0\/src\/http\/ngx_http_header_filter_module.c \\<\/span>\r\n<span class=\"line\">    &amp;&amp; sed -i \"s|\\#define[ ]NGINX_VER[ ].*|\\#define NGINX_VER \\\"\\\"|\" nginx-1.24.0\/src\/core\/nginx.h \\<\/span>\r\n<span class=\"line\">    &amp;&amp; cd nginx-1.24.0 \\<\/span>\r\n<span class=\"line\">    &amp;&amp; .\/configure --prefix=\/usr\/share\/nginx \\<\/span>\r\n<span class=\"line\">    --sbin-path=\/usr\/share\/nginx\/sbin\/nginx \\<\/span>\r\n<span class=\"line\">    --modules-path=\/etc\/nginx\/modules \\<\/span>\r\n<span class=\"line\">    --conf-path=\/etc\/nginx\/nginx.conf \\<\/span>\r\n<span class=\"line\">    --error-log-path=\/var\/log\/nginx\/error.log \\<\/span>\r\n<span class=\"line\">    --http-log-path=\/var\/log\/nginx\/access.log \\<\/span>\r\n<span class=\"line\">    --http-client-body-temp-path=\/var\/lib\/nginx\/tmp\/client_body \\<\/span>\r\n<span class=\"line\">    --http-fastcgi-temp-path=\/var\/lib\/nginx\/tmp\/fastcgi \\<\/span>\r\n<span class=\"line\">    --http-proxy-temp-path=\/var\/lib\/nginx\/tmp\/proxy \\<\/span>\r\n<span class=\"line\">    --http-scgi-temp-path=\/var\/lib\/nginx\/tmp\/scgi \\<\/span>\r\n<span class=\"line\">    --http-uwsgi-temp-path=\/var\/lib\/nginx\/tmp\/uwsgi \\<\/span>\r\n<span class=\"line\">    --pid-path=\/usr\/share\/nginx\/logs\/nginx.pid \\<\/span>\r\n<span class=\"line\">    --lock-path=\/run\/lock\/subsys\/nginx \\<\/span>\r\n<span class=\"line\">    --user=nginx \\<\/span>\r\n<span class=\"line\">    --group=nginx \\<\/span>\r\n<span class=\"line\">    --with-file-aio \\<\/span>\r\n<span class=\"line\">    --with-ipv6 \\<\/span>\r\n<span class=\"line\">    --with-http_ssl_module \\<\/span>\r\n<span class=\"line\">    --with-http_v2_module \\<\/span>\r\n<span class=\"line\">    --with-http_realip_module \\<\/span>\r\n<span class=\"line\">    --with-http_sub_module \\<\/span>\r\n<span class=\"line\">    --with-http_slice_module \\<\/span>\r\n<span class=\"line\">    --with-http_perl_module=dynamic \\<\/span>\r\n<span class=\"line\">    --with-http_auth_request_module \\<\/span>\r\n<span class=\"line\">    --with-pcre \\<\/span>\r\n<span class=\"line\">    --with-pcre-jit \\<\/span>\r\n<span class=\"line\">    --with-stream=dynamic \\<\/span>\r\n<span class=\"line\">    --with-stream_ssl_module \\<\/span>\r\n<span class=\"line\">    --with-debug \\<\/span>\r\n<span class=\"line\">    --add-module=\/etc\/nginx\/modules\/ngx-fancyindex \\<\/span>\r\n<span class=\"line\">    &amp;&amp; make \\<\/span>\r\n<span class=\"line\">    &amp;&amp; make install \\<\/span>\r\n<span class=\"line\">    &amp;&amp; cd \/opt\/nginx \\<\/span>\r\n<span class=\"line\">    &amp;&amp; rm -rf nginx-1.24.0 \\<\/span>\r\n<span class=\"line\">    &amp;&amp; rm -rf nginx-1.24.0.tar.gz \\<\/span>\r\n<span class=\"line\">    &amp;&amp; yum clean all \\<\/span>\r\n<span class=\"line\">    &amp;&amp; useradd nginx \\<\/span>\r\n<span class=\"line\">    &amp;&amp; chown -R nginx:nginx \/var\/log\/nginx \\<\/span>\r\n<span class=\"line\">    &amp;&amp; mkdir -p \/var\/lib\/nginx\/tmp\/client_body \\<\/span>\r\n<span class=\"line\">    &amp;&amp; chown -R nginx:nginx \/var\/lib\/nginx \\<\/span>\r\n<span class=\"line\">    &amp;&amp; touch \/usr\/share\/nginx\/logs\/nginx.pid \\<\/span>\r\n<span class=\"line\">    &amp;&amp; chown -R nginx:nginx \/usr\/share\/nginx \\<\/span>\r\n<span class=\"line\">    &amp;&amp; chown -R nginx:nginx \/etc\/nginx\/modules<\/span>\r\n\r\n<span class=\"line\">COPY .\/nginx.conf \/etc\/nginx\/nginx.conf<\/span>\r\n\r\n<span class=\"line\">ENV PATH \/usr\/share\/nginx\/sbin:\\$PATH<\/span>\r\n\r\n<span class=\"line\">EXPOSE 8080<\/span>\r\n\r\n<span class=\"line\">USER root<\/span>\r\n\r\n<span class=\"line\">CMD [\"nginx\", \"-g\", \"daemon off;\"]<\/span><\/code><\/pre>\n<\/div>\n<\/li>\n<li><strong>\u6784\u5efanginx\u955c\u50cf<\/strong>\n<p>docker build -t myrepo-nginx:v0.0.1 .<\/li>\n<li><strong>\u521b\u5efa\u811a\u672centrypoint.sh<\/strong>\n<div class=\"language- vp-adaptive-theme\">\n<pre class=\"shiki shiki-themes github-light github-dark vp-code\" tabindex=\"0\"><code><span class=\"line\">#!\/bin\/sh<\/span>\r\n<span class=\"line\">if [[ -z \"\\${SYNC_HOST}\" ]]; then<\/span>\r\n<span class=\"line\">        echo \"SYNC_HOST is not defined. exit none zero.\"<\/span>\r\n<span class=\"line\">        exit 1<\/span>\r\n<span class=\"line\">fi<\/span>\r\n\r\n<span class=\"line\">if [[ -z \"\\${TARGET_DIR}\" ]]; then<\/span>\r\n<span class=\"line\">        echo \"TARGET_DIR is not defined. exit none zero.\"<\/span>\r\n<span class=\"line\">        exit 1<\/span>\r\n<span class=\"line\">fi<\/span>\r\n<span class=\"line\">mkdir -p \"\\${TARGET_DIR}\"<\/span>\r\n\r\n<span class=\"line\">if [[ -z \"\\${RSYNC_INTERNAL}\" ]]; then<\/span>\r\n<span class=\"line\">        echo \"RSYNC_INTERNAL is not defined. exit none zero.\"<\/span>\r\n<span class=\"line\">        exit 1<\/span>\r\n<span class=\"line\">fi<\/span>\r\n\r\n<span class=\"line\">while true; do<\/span>\r\n<span class=\"line\">echo \"Starting to sync repos @ \\$(date)\"<\/span>\r\n<span class=\"line\">if [[ -z \"\\${ADDITIONAL_PARAMETERS}\" ]]; then<\/span>\r\n<span class=\"line\">    timeout \\${RSYNC_INTERNAL} rsync -av --partial --progress --block-size=131072 \"\\${SYNC_HOST}\"  \"\\${TARGET_DIR}\"<\/span>\r\n<span class=\"line\">else<\/span>\r\n<span class=\"line\">    timeout \\${RSYNC_INTERNAL} rsync -av --partial --progress --block-size=131072 \\${ADDITIONAL_PARAMETERS}  \"\\${SYNC_HOST}\"  \"\\${TARGET_DIR}\"<\/span>\r\n<span class=\"line\">fi<\/span>\r\n<span class=\"line\">sleep 120<\/span>\r\n<span class=\"line\">done<\/span><\/code><\/pre>\n<\/div>\n<\/li>\n<li><strong>\u521b\u5efarsync Dockerfile<\/strong>\n<div class=\"language- vp-adaptive-theme\">\n<pre class=\"shiki shiki-themes github-light github-dark vp-code\" tabindex=\"0\"><code><span class=\"line\">FROM openeuler\/openeuler:22.03-lts-sp1<\/span>\r\n\r\n<span class=\"line\">RUN yum -y update &amp;&amp; \\<\/span>\r\n<span class=\"line\">    yum install -y rsync tzdata &amp;&amp; \\<\/span>\r\n<span class=\"line\">    useradd -s \/sbin\/nologin -u 1000 rsync<\/span>\r\n\r\n<span class=\"line\">ENV TZ=\"Asia\/Shanghai\"<\/span>\r\n\r\n<span class=\"line\">COPY entrypoint.sh \/usr\/local\/bin\/<\/span>\r\n\r\n<span class=\"line\">RUN chown 1000:1000 \/usr\/local\/bin\/entrypoint.sh &amp;&amp; \\<\/span>\r\n<span class=\"line\">    chmod +x \/usr\/local\/bin\/entrypoint.sh<\/span>\r\n\r\n<span class=\"line\">WORKDIR \/usr\/local\/bin\/<\/span>\r\n\r\n<span class=\"line\">ENV PATH=\\$PATH:\/usr\/local\/bin\/<\/span>\r\n\r\n<span class=\"line\">CMD [\"entrypoint.sh\"]<\/span><\/code><\/pre>\n<\/div>\n<\/li>\n<li><strong>\u6784\u5efarsync\u955c\u50cf<\/strong>\n<p>docker build -t myrepo-rsync:v0.0.1 .<\/li>\n<\/ul>\n<h3 id=\"\u542f\u52a8nginx\u548crsync\u5bb9\u5668\" tabindex=\"-1\">\u542f\u52a8nginx\u548crsync\u5bb9\u5668<\/h3>\n<p>docker run -d -v \/opt\/openeuler:\/repo\/openeuler -p 8080:8080 myrepo-nginx:v0.0.1<\/p>\n<p>docker run -d -e SYNC_HOST=&#8221;rsync:\/\/root@repo.openeuler.openatom.cn\/openeuler&#8221; -e TARGET_DIR=&#8221;\/repo\/openeuler&#8221; -e RSYNC_INTERNAL=&#8221;600&#8243; -e ADDITIONAL_PARAMETERS=&#8221;&#8211;delete&#8221; -v \/opt\/openeuler:\/repo\/openeuler myrepo-rsync:v0.0.1<\/p>\n<h3 id=\"\u8bbf\u95ee\u81ea\u5efa\u955c\u50cf\u7ad9\" tabindex=\"-1\">\u8bbf\u95ee\u81ea\u5efa\u955c\u50cf\u7ad9<\/h3>\n<p>\u6d4f\u89c8\u5668\u4e0a\u8f93\u5165 docker \u5bbf\u4e3b\u673a\u5730\u5740 http:\/\/192.168.1.1:8080<\/p>\n<div><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-979\" src=\"https:\/\/www.o6s.net\/wp-content\/uploads\/2025\/10\/2024-09-09-\u5f00\u6e90\u955c\u50cf\u7ad9\u90e8\u7f72-01.DF-dI3Wx.png\" width=\"1280\" height=\"495\" alt=\"\" srcset=\"https:\/\/www.o6s.net\/wp-content\/uploads\/2025\/10\/2024-09-09-\u5f00\u6e90\u955c\u50cf\u7ad9\u90e8\u7f72-01.DF-dI3Wx.png 1280w, https:\/\/www.o6s.net\/wp-content\/uploads\/2025\/10\/2024-09-09-\u5f00\u6e90\u955c\u50cf\u7ad9\u90e8\u7f72-01.DF-dI3Wx-300x116.png 300w, https:\/\/www.o6s.net\/wp-content\/uploads\/2025\/10\/2024-09-09-\u5f00\u6e90\u955c\u50cf\u7ad9\u90e8\u7f72-01.DF-dI3Wx-1024x396.png 1024w, https:\/\/www.o6s.net\/wp-content\/uploads\/2025\/10\/2024-09-09-\u5f00\u6e90\u955c\u50cf\u7ad9\u90e8\u7f72-01.DF-dI3Wx-768x297.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/>from:<\/p>\n<div class=\"markdown-body-title\" data-v-97aae58c=\"\" data-v-cfe3ab80=\"\">\n<div class=\"info\" data-v-cfe3ab80=\"\"><span class=\"author\" data-v-cfe3ab80=\"\">yang_liu0418@163.com<\/span><\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u80cc\u666f \u793e\u533a \u5f00\u53d1\u8005\u5e0c\u671b\u642d\u5efa\u4e00\u5957\u79c1\u6709\u955c\u50cf\u7ad9\u3002\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 docker \u5feb\u901f\u90e8\u7f72 openEuler \u955c\u50cf\u7ad9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":979,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-970","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-openeuler"],"_links":{"self":[{"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/posts\/970","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/comments?post=970"}],"version-history":[{"count":1,"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/posts\/970\/revisions"}],"predecessor-version":[{"id":980,"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/posts\/970\/revisions\/980"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/media\/979"}],"wp:attachment":[{"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/media?parent=970"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/categories?post=970"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.o6s.net\/index.php\/wp-json\/wp\/v2\/tags?post=970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}