构建多功能nginx镜像的Dockerfile示例
将依赖的安装包下载至tools目录,具体参见链接,通过如下的Dockerfile构建镜像:docker build -t $IMAGE_NAME
启动容器示例: docker run -d -p $PORT:80 --name nginx-tools $IMAGE_NAME /bin/bash -c 'tail -f /data/tools/README.md'
FROM centos
EXPOSE 80
RUN mkdir-p/data/tools \
&& yum-y install zlib-devel pcre-devel vim wget gcc gcc-c++ make net-tools libffi-devel mysql-devel automake autoconf libtool make openssh-server zlib* openssl openssl-devel git \
&& yum clean all
COPY ./tools/data/tools
RUN cd/data/tools \
&& tar zxvf LuaJIT-2.1.0-beta3.tar.gz \
&& cd LuaJIT-2.1.0-beta3 \
&& make \
&& make install \
&& echo"export LUAJIT_LIB=/usr/local/lib" >> /etc/profile \
&& echo"export LUAJIT_INC=/usr/local/include/luajit-2.1/" >> /etc/profile \
&& cd/data/tools \
&& source/etc/profile \
&& tar -zxvf v0.3.1rc1.tar.gz \
&& tar -zxvf v0.10.14.tar.gz \
&& tar -xzvf nginx-1.15.9.tar.gz \
&& tar zxvf libmaxminddb-1.3.2.tar.gz \
&& cd libmaxminddb-1.3.2 \
&& ./configure \
&& make \
&& make install \
&& sh -c "echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf" \
&& ldconfig \
&& cd /data/tools \
&& tar zxvf3.2.tar.gz \
&& gunzip GeoLite2-City.mmdb.gz \
&& gunzip GeoLite2-Country.mmdb.gz \
&& mkdir data/geoip \
&& mv GeoLite2-City.mmdb /data/geoip/city.mmdb \
&& mv GeoLite2-Country.mmdb /data/geoip/country.mmdb \
&& mkdir -p /data/webroot/us \
&& mkdir -p /data/webroot/cn \
&& echo"US Site" > /data/webroot/us/index.html \
&& echo"CN Site" > /data/webroot/cn/index.html \
&& cd nginx-1.15.9 \
&& ./configure--prefix=/usr/local/nginx \
--with-ld-opt=-Wl,-rpath,/usr/local/lib/ \
--with-http_ssl_module \
--with-http_stub_status_module \
--add-module=../ngx_devel_kit-0.3.1rc1 \
--add-module=../lua-nginx-module-0.10.14 \
--add-module=../ngx_http_geoip2_module-3.2 \
--add-module=../ngx_http_google_filter_module \
--add-module=../ngx_http_substitutions_filter_module \
&& make \
&& make install \
&& cd /data/tools/ \
&& tar -zxvf Python-3.7.3.tgz \
&& rm -f Python-3.7.3.tgz \
&& cd Python-3.7.3 \
&& ./configure \
&& make \
&& make install \
&& ln -s /data/tools/Python-3.7.3/python /usr/bin/python \
&& cd /data/tools/VeryNginx \
&& python install.py install verynginx \
&& mv /data/tools/nginx.conf /usr/local/nginx/conf \
&& rm-rf /data/tools/*gz
CMD ["tail -f /data/tools/README.md"]