无缓存的多阶段 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
我有一个多级 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