docker 指令紀錄 in 2025
Docker 指令紀錄 in 2025, for NET8, React and ASP.NET Core 專案部署紀錄。
引言
這只是一份紀錄。無法泛用。留參。
此例是用在部署 NET8 React in ASP.NET Web App 到 Docker Desktop。
此例部署到 Docker Desktop 是 HTTP 模式。若要支援 HTTPS 需再加入 TLS/SSL 憑證與相關組態。
開發環境
IDE: Visual Studio 2022
平台: NET8
框架: React in ASP.NET Core (TypeScript)
部署目標: Docker Desktop (linux containger)
部署程序
因為一些原因打算在本地端編譯後再上傳到 Docker。正常來說 CI/CD 都是在 Docker 端執行。
O、前置工作
備好一份可成功編譯與執行的專案。
安裝 Docker Desktop。
...
一、手動發佈專案。
先手動發行專案到 _publish 目錄。
設定如下圖:

二、執行 docker CI 指令
加入 Dockerfile 並填寫組態。
# 使用官方的 ASP.NET Core 執行階段作為基礎映像
FROM mcr.microsoft.com/dotnet/aspnet:8.0
# 在容器內建立一個工作目錄
WORKDIR /app
# 將 _publish 目錄中的所有檔案複製到容器的 /app 目錄中
# - 前置工作:先手動發行專案到 `_publish` 目錄。
# - ※此例在前置工作就編譯完成。此步驟只是複製到 docker image。
COPY ["_publish/", "."]
# 公開容器的 8080 連接埠,讓外部可以存取
EXPOSE 8080
# 設定容器啟動時執行的命令
# 這裡假設您的啟動專案是 AuctionHouseApp.Server.dll
ENTRYPOINT ["dotnet", "AuctionHouseApp.Server.dll"]執行 docker CI 指令。
# (CI)
# build (此例 build 只是複製檔案到 docker)
# - 將依組態檔 `Dockerfile` 進行 build。
docker build -t auctionhouseapp .
docker build -t <your-webapp-image-name> <source_folder>三、執行 docker CD 指令
打算透過 docker.env 參數檔喂參數。先填好參數檔。
# Docker 環境專用的設定檔
# ASP.NET Core 會自動將 : 轉換為階層
ConnectionStrings:AUCDB=Server=host.docker.internal,1433;Database=AuctionDB;User Id=sa;Password=*******;Encrypt=false
ConnectionStrings:YourDB=Server=host.docker.internal,1433;Database=YourDbName;User Id=sa;Password=*******;Encrypt=false
# 您也可以在這裡加入或覆寫其他設定,例如:
# Logging:LogLevel:Default="Information"
# SomeOtherKey="SomeValue"再執行 docker CD 指令。
# (CD)
# 啟動並依 ./docker.env 參數啟動(以虛網啟動)
# - 其中 -p 38080:8080 --- 轉換內部虛網 port 8080 → 外部 port 38080
# - 其中 --env-file 指向環境參數檔。會取代 appsetting.json 對應的參數。也可用 `-e ...` 語法替換。
docker run -d -p 38080:8080 --name auctionhouse-container --env-file ./docker.env auctionhouseapp
docker run -d -p 38080:8080 --name <your-webapp-container-name> --env-file ./docker.env <your-webapp-image-name>四、若成功的話在 browser 開啟你的 Web App。
沒圖沒真象

順便整理指令
(先這樣)
Last updated