制作小体积的docker镜像案例—— 筑梦之路

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下载

猜你喜欢

转载自blog.csdn.net/qq_34777982/article/details/125279694