iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0
DevOps

.NET Core 專案持續整合與部署系列 第 23

Virtualize:Dockerize .NET Core Application

  • 分享至 

  • xImage
  •  
# 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”]

上一篇
GitLab CI:觸發流程實作
下一篇
Virtualize:發佈到 GCP Container Registry
系列文
.NET Core 專案持續整合與部署31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言