#宿主机为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构建openeuler22.03x86的nginx-1.26.2镜像
最新推荐文章于 2025-01-19 03:17:55 发布