docker构建openeuler22.03x86的nginx-1.26.2镜像

#宿主机为ubuntu20.04
#当前随意创建一个目录dockerfile

#1.安装依赖
apt install make gcc -y 

apt-get install libpcre3 libpcre3-dev -y 
apt-get install openssl libssl-dev -y

apt-get install zlib1g-dev -y

apt-get install libxml2 libxslt1.1 libxml2-dev libxslt1-dev -y

#2.下载nginx的1.26.2的源码包,解压编译
./configure  --prefix=/usr/local/nginx  --conf-path=/etc/nginx/nginx.conf   --error-log-path=/var/log/nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module   --with-http_gunzip_module --with-http_gzip_static_module   && make && make install

#3.拷贝依赖文件以及nginx编译的程序
cp /usr/lib/x86_64-linux-gnu/libxslt.so.1.1.34 ./

cp /usr/lib/x86_64-linux-gnu/libexslt.so.0.8.20 ./

cp -r /etc/nginx  ./nginx_conf && mkdir ./nginx_conf/conf.d

cp -r /usr/local/nginx  ./nginx && rm -rf ./nginx/html && rm -rf ./nginx/logs

#3.修改./nginx_conf/nginx.conf
vim ./nginx_conf/nginx.conf

user nobody;
worker_processes  1;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    proxy_hide_header X-Powered-By;
    proxy_hide_header Server;
    proxy_buffer_size 1024k;
    proxy_buffers 16 1024k;
    client_max_body_size 30m;
    proxy_busy_buffers_size 2048k;
    proxy_temp_file_write_size 2048k;
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers Content-Type,X-Requested-With;
    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    log_format  main_detail     '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
                                '$status $body_bytes_sent "$http_referer" '
                                '"$http_user_agent" - $host - $request_body';
    access_log off;
    #access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;
    underscores_in_headers on;
    #tcp_nopush     on;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

#4.编写yum的源
vim openEuler.repo

[osrepo]
name=osrepo
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS/OS/x86_64/
enabled=1

gpgcheck=0
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler


#5.编写dockerfile构建nginx镜像
vim Dockerfile

FROM openeuler22.03
COPY nginx_conf /etc/nginx
COPY nginx /usr/local/nginx
COPY openEuler.repo /etc/yum.repos.d/openEuler.repo
COPY libxslt.so.1.1.34 /usr/lib64/libxslt.so.1
COPY libexslt.so.0.8.20 /usr/lib64/libexslt.so.0

RUN mkdir -p /var/log/nginx && sed -i '/^export TMOUT=300$/d' /etc/bashrc && yum clean all && yum makecache &&  yum -y install telnet vim && ln -s /usr/lib64/libpcre.so.1 /usr/lib64/libpcre.so.3

WORKDIR /etc/nginx

CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]

EXPOSE 80

#6.当前目录要有以下几个文件
Dockerfile  libexslt.so.0.8.20  libxslt.so.1.1.34  nginx   nginx_conf  openEuler.repo

docker build -t openeuler2203_nginx:1.26.2 . 等待打包完成即可

#注意
nginx的配置文件 /etc/nginx/nginx.conf
nginx的配置文件目录 /etc/nginx/conf.d

类比一下,其他版本或者arm架构的都可以构建完成了




你可能感兴趣的:(docker,nginx,容器)