c语言sscanf函数的用法是什么
269
2022-10-31
dockerfile优化
优化前示例
mkdir nginxcd nginx///拷贝nginx-1.20.2源码包到 nginx/中vim DockerfileFROM centos:7 #[from 是一个指令,每个命令构成一个镜像,镜像是分层的,所以这一层是 基础镜像]#用户信息(可选)【可忽略,选名字的】MAINTAINER this is nginx image#添加环境包【如果都分开写,它的镜像层多了,他的占用空间就大了,后期为了优化,那么就写成一条】 [一条指令可以用&& 方式,去写多条指令]RUN yum -y update # RUN是一个指令,执行后面的命令 【这边就是镜像层】RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make ## gcc是nginx的编译环境RUN useradd -M -s /sbin/nologin nginx # 给nginx创建一个专属用户#传入、解压nginx软件包ADD nginx-1.20.2.tar.gz /usr/local/src # add是用来复制并解压的 ,放到/usr/local/src下VOLUME ["/usr/local/nginx/html"] WORKDIR /usr/local/src#指定工作目录WORKDIR nginx-1.20.2RUN ./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-&& make && make installENV PATH /usr/local/nginx/sbin:$PATH#指定80RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.confCMD nginx
优化方法1:不需要输出的指令丢入/dev/null (需要确定命令执行的是正确的)
FROM centos:7RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && yum clean allADD nginx-1.20.2.tar.gz /mntWORKDIR /mnt/nginx-1.20.2#关闭debug日志RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gccRUN ./configure --prefix=/usr/local/nginx &> /dev/nullRUN make &> /dev/nullRUN make install &> /dev/nullRUN rm -rf /mnt/nginx-1.20.2EXPOSE 80VOLUME ["/usr/local/nginx/html"]CMD ["/usr/local/nginx/sbin/nginx""-g","daemon off;"] docker build -t nginx:v1 .
优化方法2:减少RUN构建
可以使用&&连接
FROM centos:7ADD nginx-1.20.2.tar.gz /mnt WORKDIR /mnt/nginx-1.20.2RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \ yum clean all && \ sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \ ./configure --prefix=/usr/local/nginx &> /dev/null && \ make &> /dev/null && make install &> /dev/null &&\ rm -rf /mnt/nginx-1.20.2 EXPOSE 80VOLUME ["/usr/local/nginx/html"]CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"] docker build -f Dockerfile -t nginx:v3 .
优化方法3:多阶段构建(使用FROM命令生成多个镜像,将指定的镜像做为其他镜像的基础镜像环境来构建)
FROM centos:7 as build ADD nginx-1.20.2.tar.gz /mnt WORKDIR /mnt/nginx-1.20.2RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \ yum clean all &&\ sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \ ./configure --prefix=/usr/local/nginx &> /dev/null && \ make &>/dev/null && \ make install &>/dev/null && \ rm -rf /mnt/nginx-1.20.2 FROM centos:7 EXPOSE 80VOLUME ["/usr/local/nginx/html"]COPY --from=build /usr/local/nginx /usr/local/nginxCMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
优化方法4: 使用更为轻量级的linux 发行版本
debianalpineapt add
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~