# Outline
一、論述
二、實作
# TL;DR
在國慶連假前,此系列文每天的發文時都會以最簡陳述為主,以求在繁忙的日常中,至少能先維持挑戰鐵人賽的進度,並且逐漸拓展思路與系列構成。預期會在國慶聯假好好的去修文。
在前面有提過「透過 Docker 建置 .NET Core 專案」,裡面其實只是嘗試讓大家在 Docker 容器中去建置專案,讓大家比較有概念。今天則是講數如和透過 Dockerfile,將專案建置成 Docker Image,成為一個隨時可以透過 CaaS 或是 Kubernetes 發布的狀態。
這邊用上 Docker 的多階段建置 的功能。在 Build Stage 中,我們是使用 .NET Core SDK 的 image 去將原始碼建置成程式,然後在 Runtime Stage 裡,把上個階段建置好的程式封裝在 ASP.NET Core 的 image 去執行,這樣就可以省下許多 image layer,讓這份 image 更小、建置與儲存成本更低。
# Build Stage
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS Builder
WORKDIR /app
COPY . .
RUN dotnet publish -o=dist —configuration=Release
# Runtime Stage
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0
COPY —from=Builder ./app/dist ./app
WORKDIR /app
ENTRYPOINT [“dotnet”, “WebProj.dll”]