Forked by: Course code for: Build a Backend REST API with Python & Django - Advanced
- Docker
- Docker Compose
使用 Docker Compose 啟動所有服務(應用程式和資料庫):
# 啟動所有服務並查看日誌
docker-compose up
# 在背景執行所有服務
docker-compose up -d
# 停止所有服務
docker-compose down服務啟動後:
- Django 應用程式將運行在 http://localhost:8000
- PostgreSQL 資料庫將運行在 port 5432
# 執行所有單元測試
docker-compose run --rm app sh -c "python manage.py wait_for_db && python manage.py test"# 執行 flake8 程式碼風格檢查
docker-compose run --rm app sh -c "flake8"- 資料庫資料儲存在
dev-db-datavolume - 靜態檔案儲存在
dev-static-datavolume
開發環境預設值:
- DB_HOST=db
- DB_NAME=devdb
- DB_USER=devuser
- DB_PASS=changeme
- DEBUG=1
- 本地開發時,程式碼變更會自動重新載入,不需重新建置容器
- 首次執行可能需要執行資料庫遷移:
docker-compose run --rm app sh -c "python manage.py migrate"如果遇到問題,可以嘗試以下步驟:
- 檢查容器狀態:
docker-compose ps- 查看容器日誌:
docker-compose logs- 重建容器:
docker-compose down
docker-compose up --build
4. 常用指令:
```bash
docker-compose -f docker-compose.prod.yml down
docker-compose -f docker-compose.prod.yml build --no-cache
docker-compose -f docker-compose.prod.yml up -d
docker compose -f docker-compose.prod.yml pull frontend
docker compose -f docker-compose.prod.yml up -d frontend
docker-compose -f docker-compose.prod.yml pull
docker-compose -f docker-compose.prod.yml up -d