gpt4 book ai didi

docker - Docker:多阶段构建会生成多个镜像

转载 作者:行者123 更新时间:2023-12-02 19:44:18 28 4
gpt4 key购买 nike

给出这个多阶段构建的小例子

FROM node:10 AS ui-build
WORKDIR /usr/src/app

FROM node:10 AS server-build
WORKDIR /root/

EXPOSE 3070

ENTRYPOINT ["node"]
CMD ["index.js"]

为什么这会在本地文件系统上生成3张图像?
"<none>";"<none>";"58d63982fbef";"2020-04-15 17:53:14";"912MB"
"node";"10";"bd83fcefc19d";"2020-04-14 01:32:21";"912MB"
"test";"latest";"3913dd4d03b6";"2020-04-15 17:53:15";"912MB"

我期望有两个镜像,即基本镜像和服务器构建镜像。我使用了标准的docker build命令,即
docker build -t test . 

那么图像的哪些部分不存在,哪些是测试?

我很困惑

最佳答案

Dockerfile中以FROM行开头的每个块都会创建一个新镜像。如果使用docker build -t选项,则只有最后一个阶段会使用您指定的名称进行标记;其余块将在<none>输出之类的地方显示为docker images

# node:10 is a base image

# Not the final image, will appear as <none>:<none>
FROM node:10 AS ui-build
...

# The final image, will appear as test:latest (`docker build -t` option)
FROM node:10 AS server-build
...

您偶尔会看到Dockerfiles,其中的基础镜像在以后的构建阶段中会被重用,并且在那里它根本不会显示在 docker images输出中。

# Will be hidden because it has descendant images
FROM node:10 AS base
RUN apt-get update && apt-get upgrade

# Will appear as <none>:<none>
FROM base AS ui
...

# Will get the `docker build -t` tag
FROM base

关于docker - Docker:多阶段构建会生成多个镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64524104/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com