踩坑记录
自作编译安装的nginx镜像时,出现报错信息。
- dockerfile制作镜像时总是报错yum not found
出错的dockerfile文件如下
FROM centos
#这里覆盖了centos镜像中的环境变量PATH,导致命令无法找到
ENV PATH /usr/local/nginx/sbin
RUN yum install -y pcre-devel zlib-devel make gcc gcc-c++ openssl-devel \
&& cd /root \
&& curl -O http://mirrors.sohu.com/nginx/nginx-1.19.2.tar.gz \
&& tar -xf nginx-1.19.2.tar.gz \
&& cd nginx-1.19.2 \
&& ./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_ssl_module --with-stream \
&& make \
&& make install
WORKDIR $PATH
EXPOSE 80
#这里的CMD命令可能被启动镜像时的参数覆盖,导致镜像启动而没有前台进程,从而导致容器自动关闭
CMD ["$PATH/nginx"]
修正后的dockerfile文件
FROM centos
RUN yum install -y pcre-devel zlib-devel make gcc gcc-c++ openssl-devel \
&& cd /root \
&& curl -O http://mirrors.sohu.com/nginx/nginx-1.19.2.tar.gz \
&& tar -xf nginx-1.19.2.tar.gz \
&& cd nginx-1.19.2 \
&& ./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_ssl_module --with-stream \
&& make \
&& make install
ENV MYPATH /usr/local/nginx/sbin
WORKDIR $MYPATH
EXPOSE 80
# 保证nginx运行在前台,避免闪退
CMD ["nginx", "-g", "daemon off;"]