diff --git a/docker-compose.yml b/docker-compose.yml index 5d20db1..0229443 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,27 @@ version: '3.8' services: + # PostgreSQL 数据库 + scoring-db: + image: postgres:15-alpine + container_name: cywl-scoring-db + restart: always + environment: + - POSTGRES_DB=scoring_system + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=password + volumes: + - scoring_db_data:/var/lib/postgresql/data + ports: + - "5432:5432" + networks: + - scoring_network + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 10s + timeout: 5s + retries: 5 + # 后端服务 scoring-backend: build: @@ -16,11 +37,11 @@ services: environment: - DEBUG=False - SECRET_KEY=${SECRET_KEY:-your-secret-key-change-this} - - DB_NAME=${DB_NAME:-scoring_system} - - DB_USER=${DB_USER:-postgres} - - DB_PASSWORD=${DB_PASSWORD:-password} - - DB_HOST=${DB_HOST:-localhost} - - DB_PORT=${DB_PORT:-5432} + - DB_NAME=scoring_system + - DB_USER=postgres + - DB_PASSWORD=password + - DB_HOST=scoring-db + - DB_PORT=5432 - WECHAT_APPID=${WECHAT_APPID} - WECHAT_SECRET=${WECHAT_SECRET} - WECHAT_MCHID=${WECHAT_MCHID} @@ -31,6 +52,9 @@ services: - ALIYUN_OSS_BUCKET_NAME=${ALIYUN_OSS_BUCKET_NAME} - ALIYUN_TINGWU_APP_KEY=${ALIYUN_TINGWU_APP_KEY} - DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY} + depends_on: + scoring-db: + condition: service_healthy networks: - scoring_network healthcheck: @@ -54,6 +78,9 @@ services: depends_on: scoring-backend: condition: service_healthy + +volumes: + scoring_db_data: networks: - scoring_network healthcheck: