gpt4 book ai didi

Docker:多阶段构建会产生多个图像

转载 作者:行者123 更新时间:2023-12-02 20:59:17 25 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 中的每个 block 都以 FROM 开头行创建一个新图像。如果您使用 docker build -t选项,只有最后一个阶段被标记为您指定的名称;剩余的 block 将显示为 <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:多阶段构建会产生多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61234588/

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