在docker中为了缩小镜像,可以使用多阶段构建的方法来避免给最终镜像加载一些不必要的依赖库.
例如我们在编译过程中,需要使用wget下载一个文件,但是仅为了这一个功能在最终镜像中安装这样一个库是没必要的.
所以这里可以采用先使用一个临时镜像,在里面安装wget,并将文件下载下来,然后再拷贝进最终镜像中.
对应的dockerfile如下
# 第一阶段,使用一个临时的ubuntu镜像来下载文件
FROM ubuntu:20.04 as downloader
RUN apt-get update && apt install wget -y
WORKDIR /app
RUN wget "https://xxxx.com/test.jpg" -O test.jpg
# 第二阶段,将临时镜像中的文件拷贝进目标镜像中
FROM alpine
COPY --from=downloader /app/test.jpg /home/
...