專案概述
此專案包含:
- Backend: ASP.NET Core 8.0 應用程式 (Port: 5004 → 8080)
- Frontend: Next.js 應用程式 (Port: 3004 → 3000)
- 網路: 使用 bridge 模式的 dynamic-network
前置需求
1. 安裝 Docker Desktop
2. 驗證 Docker 安裝
開啟 PowerShell 或命令提示字元,執行:
1 2
| docker --version docker-compose --version
|
專案結構
1 2 3 4 5 6 7 8 9 10 11 12
| TRC-204/ ├── docker-compose.yml # Docker Compose 設定檔 ├── dynamic-backend/ # 後端專案資料夾 │ ├── Dockerfile # 後端 Dockerfile │ ├── src/ # 後端原始碼 │ └── dynamic-backend.sln # .NET 解決方案檔 ├── dynamic-frontend/ # 前端專案資料夾 │ ├── Dockerfile # 前端 Dockerfile │ ├── src/ # 前端原始碼 │ ├── package.json # Node.js 相依套件 │ └── next.config.ts # Next.js 設定 └── README.md
|
啟動步驟
步驟 1: 開啟 CMD
步驟 2: 導航到專案根目錄
步驟 3: 確認 docker-compose.yml 檔案存在
步驟 4: 建立並啟動所有容器
1
| docker-compose up --build -d
|
參數說明:
--build: 強制重新建立映像檔
-d: 在背景運行容器(detached mode)
步驟 5: 驗證容器狀態
您應該看到兩個運行中的容器:
dynamic-frontend (Port: 3004)
dynamic-backend (Port: 5004)
步驟 6: 檢查容器日誌(可選)
1 2 3 4 5 6 7 8
| docker logs dynamic-frontend
docker logs dynamic-backend
docker logs -f dynamic-frontend
|
存取應用程式
前端
後端 API
常用管理指令
停止所有容器
停止並移除所有資源
1
| docker-compose down --volumes --remove-orphans
|
重新啟動特定服務
1 2 3 4 5
| docker-compose restart frontend
docker-compose restart backend
|
查看服務狀態
進入容器內部(除錯用)
1 2 3 4 5
| docker exec -it dynamic-frontend sh
docker exec -it dynamic-backend bash
|
單獨啟動服務
只啟動前端 (Next.js)
1 2 3 4 5
| docker-compose up frontend -d
docker-compose up --build frontend -d
|
只啟動後端 (ASP.NET Core)
1 2 3 4 5
| docker-compose up backend -d
docker-compose up --build backend -d
|
停止特定服務
1 2 3 4 5
| docker-compose stop frontend
docker-compose stop backend
|
移除特定服務
1 2 3 4 5
| docker-compose rm -s frontend
docker-compose rm -s backend
|
開發流程
查看特定服務日誌
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| docker-compose logs -f
docker-compose logs frontend
docker-compose logs backend
docker-compose logs -f frontend
docker-compose logs -f backend
|
故障排除
問題 1: 容器無法啟動
解決方案:
1 2 3 4 5 6 7
| docker logs dynamic-frontend docker logs dynamic-backend
docker-compose build --no-cache docker-compose up -d
|
問題 2: Port 衝突
錯誤訊息: Port already in use
解決方案:
1 2 3 4 5
| netstat -ano | findstr :3004 netstat -ano | findstr :5004
|
問題 3: 映像檔建立失敗
解決方案:
1 2 3 4 5
| docker system prune -a
docker-compose build --no-cache
|
問題 4: 網路連線問題
解決方案:
1 2 3 4 5 6 7
| docker network ls docker network inspect dynamic-network
docker-compose down docker-compose up -d
|
進階設定
修改埠號對應
編輯 docker-compose.yml 檔案中的 ports 設定:
1 2 3 4 5 6 7
| services: frontend: ports: - "3005:3000" backend: ports: - "5005:8080"
|
設定環境變數
在 docker-compose.yml 中添加環境變數:
1 2 3 4 5
| services: backend: environment: - ASPNETCORE_ENVIRONMENT=Production - DATABASE_URL=your_database_url
|