Docker 中部署 .NET 8 Web App 並支援 HTTPS

本文件詳細說明如何在 Docker 中部署 .NET 8 Web App,並讓其支援 HTTPS,同時使用 docker-compose 進行管理。


📌 目錄


1️⃣ 建立 .NET 8 Web App

如果尚未建立 .NET 8 Web 應用程式,請執行以下指令:

dotnet new web -n MyWebApp
cd MyWebApp

2️⃣ 建立 Dockerfile

在專案根目錄建立 Dockerfile,並填入以下內容:


3️⃣ 建立 HTTPS 憑證

ASP.NET Core 需要 .pfx 憑證來啟用 HTTPS,請執行:

這將建立 aspnetapp.pfx,並將其放入專案目錄。


4️⃣ 建立 docker-compose.yml

在專案目錄內建立 docker-compose.yml 檔案。

🔹 適用於標準 80/443 端口

🔹 若要使用 8080/8081 端口


5️⃣ 執行與測試

🔹 啟動容器

執行以下指令來建置並啟動容器:

🔹 檢查運行狀態

🔹 檢查容器日誌

🔹 測試應用程式

  • HTTP: http://localhost:5000

  • HTTPS: https://localhost:5001

🔹 停止並移除容器


6️⃣ 常見錯誤與解決方案

❌ 錯誤 1:The system cannot find the path specified.

原因:指定的 docker-compose.yml 路徑錯誤。解決方案


❌ 錯誤 2:Error mounting aspnetapp.pfx: not a directory

原因

  • aspnetapp.pfx 不存在或未正確掛載。

解決方案

  • 檢查檔案是否存在

  • 確保 volumes 使用完整路徑


❌ 錯誤 3:環境變數內含敏感資訊

解決方案: 在 docker run 時傳入:


🎯 總結

  • 建立 .NET 8 Web App 並撰寫 Dockerfile

  • 建立 aspnetapp.pfx 來啟用 HTTPS。

  • 使用 docker-compose.yml 進行管理。

  • 使用 docker-compose up --build -d 啟動應用程式。

  • 修正常見錯誤,確保應用程式順利運行。

這樣,你的 .NET 8 Web App 就可以 成功運行於 Docker 並支援 HTTPS!

Last updated