最近折騰nginx有點(diǎn)多,大家忍忍,今天我們要講的是docker下構(gòu)建Nginx為例,來講解docker下鏡像的制作。Nginx的編譯參數(shù)參考 Nginx 1.18.0 安裝腳本
我們docker用的基礎(chǔ)鏡像用CENTOS: docker pull centos 獲得。
新建一個(gè)目錄 ,然后新建一個(gè)文件 Dockerfile,內(nèi)容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Version: 0.0.1 FROM centos:7 MAINTAINER 92k "admin@92k.xin" RUN yum -y update RUN yum -y install gcc gcc-c++ wget make file openssl openssl-devel WORKDIR /web/soft/ RUN wget http://nginx.org/download/nginx-1.18.0.tar.gz -P /web/soft/ RUN wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz -P /web/soft/ RUN wget http://www.zlib.net/zlib-1.2.11.tar.gz -P /web/soft/ RUN tar -zxf nginx-1.18.0.tar.gz RUN tar -zxf pcre-8.44.tar.gz RUN tar -zxf zlib-1.2.11.tar.gz RUN cd nginx-1.18.0 &&./configure --prefix=/web/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-pcre=../pcre-8.44/ --with-zlib=../zlib-1.2.11/ && make&& make install EXPOSE 80/tcp 443/tcp CMD ["/web/nginx/sbin/nginx"] RUN echo "daemon off;" >> /web/nginx/conf/nginx.conf RUN rm -rf /web/nginx/conf/*.default |
這個(gè)編譯過程少了 openssl部分,替代的是系統(tǒng)的openssl,用原來的那個(gè),一直會(huì)編譯不過,不知道為啥,就是openssl這里編譯不過去。
上述問題找了了,少了一個(gè) perl(2020年11月10日)
docker build -t nginx:v0.0.1
編譯完成后 我們可以通過docker images 看到我們的nginx的鏡像了。
我們先跑起來:
docker run –name Nginx -p 80:80 -p443:443 -d nginx:v0.0.1
恭喜自己成功編譯好了Nginx 并順利工作。
有點(diǎn)遺憾,我們的Nginx大小524MB,有點(diǎn)大,我們需要瘦身,近期寫。