无缓存的多阶段 docker 构建

Multistage docker build with no-cache

我有一个多级 Dockerfile,如下所示。当 Dockerfile 中引用的图像之一更新时,如何确保在基于此 Dockerfile 构建图像时拉取最新版本 again/always。 运行 docker 使用 --no-cache 的构建命令仍然引用旧版本的图像,但实际上并没有从 docker 注册表中提取最新版本。

docker build --no-cache -t test_deploy -f Dockerfile
FROM myreg.abc.com/testing_node:latest AS INITIMG
....
....
RUN npm install
RUN npm run build

FROM myreg.abc.com/testing_nginx:latest

COPY --from=INITIMG /sourcecode/build/ /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]

--no-cache 告诉 docker 不要重复使用缓存层。如果图像已经存在于本地,它不会拉取图像。 您可以在构建之前 docker pull myreg.abc.com/testing_node:latest 或者更方便地在调用 docker build.

时添加 --pull

https://docs.docker.com/engine/reference/commandline/build/#options