一個基於Django的帳戶申請管理系統,使用Docker進行容器化部署。
- 用戶註冊和登入
- 帳戶申請狀態管理
- 管理員審核功能
- 批量操作功能
- 響應式設計界面
- 後端: Django 5.2.1
- 資料庫: PostgreSQL 14
- 容器化: Docker & Docker Compose
- 包管理: uv
- Web服務器: Gunicorn
- 靜態文件: WhiteNoise
- Docker
- Docker Compose
項目提供了便捷的管理腳本 manage-service.sh,包含所有常用的Docker操作。
./manage-service.sh help# 啟動開發環境
./manage-service.sh dev
# 啟動生產環境
./manage-service.sh prod
# 停止所有服務
./manage-service.sh stop
# 查看服務狀態
./manage-service.sh status
# 查看日誌
./manage-service.sh logs
# 進入應用容器
./manage-service.sh shell
# 執行資料庫遷移
./manage-service.sh migrate
# 創建超級用戶
./manage-service.sh createsuperuser
# 運行測試
./manage-service.sh test-
首次啟動
# 啟動開發環境 ./manage-service.sh dev # 執行資料庫遷移 ./manage-service.sh migrate-dev # 創建超級用戶 ./manage-service.sh createsuperuser-dev
-
日常開發
# 查看日誌 ./manage-service.sh logs # 進入容器進行調試 ./manage-service.sh shell # 創建新的遷移文件 ./manage-service.sh makemigrations # 執行遷移 ./manage-service.sh migrate
-
生產部署
# 構建並啟動生產環境 ./manage-service.sh build ./manage-service.sh prod # 收集靜態文件 ./manage-service.sh collectstatic
如果你更喜歡直接使用Docker Compose:
# 開發環境
docker-compose -f docker-compose.dev.yml up -d
# 生產環境
docker-compose up -d
# 停止服務
docker-compose down- 使用
docker-compose.dev.yml - 啟用DEBUG模式
- 代碼熱重載
- 暴露資料庫端口
- 使用
docker-compose.yml - 關閉DEBUG模式
- 使用Gunicorn作為WSGI服務器
- 靜態文件優化
DEBUG: 是否啟用調試模式 (True/False)POSTGRES_LOCAL_PORT: 本地資料庫端口映射
系統使用PostgreSQL作為主資料庫:
- 容器名: db
- 資料庫名: postgres
- 用戶名: postgres
- 密碼: postgres
- 端口: 5432
靜態文件通過WhiteNoise中間件提供服務:
- 開發環境: Django自動提供
- 生產環境: WhiteNoise + collectstatic
運行測試套件:
./manage-service.sh test或者:
docker-compose exec app uv run python manage.py test-
容器啟動失敗
# 查看詳細日誌 ./manage-service.sh logs # 重新構建鏡像 ./manage-service.sh rebuild
-
資料庫連接問題
# 檢查資料庫容器狀態 ./manage-service.sh status # 進入資料庫shell檢查 ./manage-service.sh db-shell
-
權限問題
# 清理並重新啟動 ./manage-service.sh clean ./manage-service.sh prod -
完全重置環境
# 危險操作:刪除所有數據 ./manage-service.sh reset
account_application_system/
├── accounts/ # Django應用
│ ├── static/ # 靜態文件
│ ├── templates/ # 模板文件
│ ├── migrations/ # 資料庫遷移
│ └── ...
├── Dockerfile # 生產環境Dockerfile
├── Dockerfile.dev # 開發環境Dockerfile
├── docker-compose.yml # 生產環境配置
├── docker-compose.dev.yml # 開發環境配置
├── manage-service.sh # Docker管理腳本
├── pyproject.toml # Python依賴配置
└── README.md # 項目說明
- Fork本項目
- 創建功能分支 (
git checkout -b feature/新功能) - 提交變更 (
git commit -am '添加新功能') - 推送到分支 (
git push origin feature/新功能) - 創建Pull Request
MIT License