Dcokerfile内容如下: FROM alpine:3.14 as relay_nginx RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories && apk add gcc libgcc libc-dev zlib-dev pcre-dev wget make && wget -c http://nginx.org/download/nginx-1.22.0.tar.gz && tar xf nginx-1.22.0.tar.gz && cd nginx-1.22.0 && ./configure --prefix=/usr/local/nginx && make && make install && cd ../ && rm -rf nginx-1.22.0* /var/cache/apk/* FROM alpine:3.14 as alpine_nginx RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories && apk add zlib-dev pcre-dev && rm -rf /var/cache/apk/* COPY --from=relay_nginx /usr/local/nginx /usr/local/nginx EXPOSE 80 EXPOSE 443 ENTRYPOINT ["/usr/local/nginx/sbin/nginx","-g","daemon off;"] 构建命令: docker build -t alpine_nginx:1.22.0 .
说明:
构建体积比较小的镜像,除了减少构建层外,最重要的还是使用自身体积小的基础镜像
可见dockerfile文件内有两个阶段,第一个阶段是编译nginx阶段,第二个阶段是将第一阶段的成果拿来用,只是运行nginx,因此镜像体积就小得多
这里只是一个案例,主要还是要理解其中的思想和思路。
alpine-nginx.tar.gz-Linux文档类资源-CSDN下载



