构建 NGINX 镜像

        构建 NGINX 镜像例子,在安装有docker的 服务器上编写Dockerfile,由于新版本的docker 作者信息部分改用 LABEL ,比较旧的docker 需要使用  MAINTAINER ,但是在新版本的 docker 同时兼容  MAINTAINER 和 LABEL ,随便选择其中一个写就好了,我比较推荐使用  LABEL ,毕竟LABEL 单词比较短,容易记

        以下为构建 为构建NGINX 镜像的简单代码,编译添加的模块内容需要的依赖也不一样,如果需要在编译时候添加 修改 nginx 的模块内容 ,及其需要 关注 安装的依赖是否满足条件。

#      Dockerfile 内容

#      用于构建 nginx 的基础镜像
FROM docker.io/library/centos:centos7.6.1810

#      作者等信息
LABEL "作者"=fanqietudou  [email protected]

#       安装 nginx 的基础依赖
RUN     yum clean all \
     && yum makecache \
     && yum -y install gcc automake autoconf libtool make gcc gcc-c++ \
                       pcre-devel.x86_64 zlib-devel.x86_64 unzip.x86_64 \
     && yum clean all

#       官网下载 nginx 并且做基础编译安装,按业务需求来编译nginx,不同需求,需要在编译时候添加不同的参数
RUN     curl http://nginx.org/download/nginx-1.22.0.tar.gz -o /tmp/nginx-1.22.0.tar.gz
RUN     tar -xzf /tmp/nginx-1.22.0.tar.gz -C /tmp/ \
     && cd /tmp/nginx-1.22.0 \
     && ./configure \
            --prefix=/usr/local/nginx \
            --user=nginx \
            --group=nginx \

     && make \
     && make install

#COPY    nginx.conf /usr/local/nginx/conf/nginx.conf 

#       我这里使用默认的 nginx 配置信息,由于非 root 用户使用的端口默认大于1024,否则会报权限问题,我这里使用 8080 端口
RUN     sed -ri '/listen/s/80/8080/g' /usr/local/nginx/conf/nginx.conf 
     

#######################################################################################################################
#       将 项目 复制到 html 目录,并解压,实际目录根据配置文件决定, 
#       若是需要将项目一起打包到 nginx 镜像 则取消以下内容注释,并修改成自己的内容 
#COPY    dist.zip /tmp/
#
#RUN     rm -rf /usr/local/nginx/html/*  \
#     && unzip /tmp/dist.zip -d /usr/local/nginx/html/  \
#     && rm -rf /tmp/*
#
#######################################################################################################################

#       由于安全原因,使用 nginx 用户启动 nginx 应用,添加 nginx 用户,并 修改属组授权
RUN     useradd -r nginx \
     && chown -R nginx.nginx /usr/local/nginx

#       修改属组授权后,指定使用 nginx 用户启动 nginx 应用
USER nginx

#       启动 nginx 应用的启动命令, 由于 docker 是使用前台 方式启动应用 ,所以 要添加 tail -f 使其一直保持在前台不退出 
ENTRYPOINT /usr/local/nginx/sbin/nginx    && tail -f /usr/local/nginx/logs/*log

        使用Dockerfile 构建镜像的命令:

docker build -t test/nginx:v1 .    --no-cache

# docker build -t test/nginx:v1  -f Dockerfile    --no-cache

你可能感兴趣的:(nginx,服务器,运维,docker)