【发布时间】:2026-02-07 21:25:01
【问题描述】:
我是 Docker 的新手,对一些事情感到困惑。我也有一些疑问。请在下面找到它们。如果这些问题得到解决,我会很高兴。
问题 1:
在多阶段构建中,docker如何识别阶段的工件?因为我在很多文章中看到,人们说COPY --from=0 src dest 将复制上一个构建阶段的工件。我的意思是我们在哪里明确定义您需要从该文件夹中复制工件?舞台的build output/build artifact是什么定义的?
# Stage 1
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /build
COPY . .
RUN dotnet restore
RUN dotnet publish -c Release -o /app
# Stage 2
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS final
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "Core3Api.dll"]
-
Q2 -
COPY --from=build src dest是否从以前的版本或映像中复制文件? -
Q3 - 通常copy有两个参数,一个是源,一个是
另一个是目的地。上面我们有三个参数,
--from=buildsrcdest。这个副本是如何工作的? -
Q4 - 我们需要在每个构建阶段设置
WORKDIR吗?因为我 认为每个构建阶段都在一个新的隔离上下文中执行?或者它 使用相同的上下文? - Q5 - 当 Docker 移动到之前构建的镜像时,它存储在哪里 下一阶段?
我所有的问题都是相互关联的,这就是我将所有问题合二为一的原因。
【问题讨论】:
标签: docker docker-compose dockerfile containers devops