Dockerfile 文件 命令 含义
# Dockerfile 文件 命令 含义
1 FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
2 WORKDIR /app
3 EXPOSE 80
4
5 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
6 WORKDIR /src
7 COPY src/Services/Catalog/Catalog.API/Catalog.API.csproj
…
8 COPY src/BuildingBlocks/HealthChecks/src/Microsoft.AspNetCore.HealthChecks …
9 COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions.HealthChecks …
10 COPY src/BuildingBlocks/EventBus/IntegrationEventLogEF/ …
11 COPY src/BuildingBlocks/EventBus/EventBus/EventBus.csproj …
12 COPY src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.csproj …
13 COPY src/BuildingBlocks/EventBus/EventBusServiceBus/EventBusServiceBus.csproj …
14 COPY src/BuildingBlocks/WebHostCustomization/WebHost.Customization …
15 COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions …
16 COPY src/BuildingBlocks/HealthChecks/src/Microsoft.Extensions …
17 RUN dotnet restore src/Services/Catalog/Catalog.API/Catalog.API.csproj
18 COPY . .
19 WORKDIR /src/src/Services/Catalog/Catalog.API
20 RUN dotnet build Catalog.API.csproj -c Release -o /app
21
22 FROM build AS publish
23 RUN dotnet publish Catalog.API.csproj -c Release -o /app
24
25 FROM base AS final
26 WORKDIR /app
27 COPY --from=publish /app .
28 ENTRYPOINT ["dotnet", "Catalog.API.dll"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
- 第 1 行: 使用“小型”仅运行时基础映像开始一个阶段,将其称为“基础”,以供参考 。
- 第 2 行: 在映像中创建 /app 目录 。
- 第 3 行: 公开端口 80 。
- 第 5 行: 使用“大型”映像开始用于生成/发布的新阶段。 将其称为“生成” ,以供参考。
- 第 6 行: 在映像中创建目录 /src 。
- 第 7 行: 在第 16 行,复制引用的 .csproj 项目文件,以便之后能够还原包 。
- 第 17 行: 还原 Catalog.API 项目和引用项目的包 。
- 第 18 行: 将解决方案的所有目录树(.dockerignore 文件中包含的文件/目录除外)复制到映像中的 /src 目录 。
- 第 19 行: 将当前文件夹更改为 Catalog.API 项目 。
- 第 20 行: 生成项目(和其他项目依赖项)并输出到映像中的 /app 目录 。
- 第 22 行: 开始一个从“生成”继续的新阶段。 将它称为“发布” 以进行引用。
- 第 23 行: 发布项目(和依赖项)并输出到映像中的 /app 目录 。
- 第 25 行: 开始一个从“基础”继续的新阶段,并将其称为“最终” 。
- 第 26 行: 将当前目录更改为 /app 。
- 第 27 行: 将 /app 目录从阶段“发布”复制到当前目录 。
- 第 28 行: 定义启动容器时要运行的命令。
上次更新: 2023/05/09, 17:54:37