diff --git a/.env.example b/.env.example index 547ff66..8c9bedc 100644 --- a/.env.example +++ b/.env.example @@ -1,8 +1,8 @@ # MySQL数据库配置 -MYSQL_HOST= -MYSQL_PORT= -MYSQL_USER= -MYSQL_PASSWORD= +MYSQL_HOST=gemini-balance-mysql +MYSQL_PORT=3306 +MYSQL_USER=gemini +MYSQL_PASSWORD=change_me MYSQL_DATABASE=default_db API_KEYS=["AIzaSyxxxxxxxxxxxxxxxxxxx","AIzaSyxxxxxxxxxxxxxxxxxxx"] ALLOWED_TOKENS=["sk-123456"] diff --git a/docker-compose.yml b/docker-compose.yml index 965b3fa..56ab302 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,40 @@ -version: '3' - +volumes: + mysql_data: services: gemini-balance: + image: ghcr.io/snailyp/gemini-balance:latest + container_name: gemini-balance + restart: unless-stopped build: . ports: - "8000:8000" env_file: - .env + depends_on: + mysql: + condition: service_healthy + healthcheck: + test: ["CMD-SHELL", "python -c \"import requests; exit(0) if requests.get('http://localhost:8000/health').status_code == 200 else exit(1)\""] + interval: 30s + timeout: 5s + retries: 3 + start_period: 10s + mysql: + image: mysql:8 + container_name: gemini-balance-mysql + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: your_root_password + MYSQL_DATABASE: ${MYSQL_DATABASE} + MYSQL_USER: ${MYSQL_USER} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + # ports: + # - "3306:3306" + volumes: + - mysql_data:/var/lib/mysql + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"] + interval: 10s # 每隔10秒检查一次 + timeout: 5s # 每次检查的超时时间为5秒 + retries: 3 # 重试3次失败后标记为 unhealthy + start_period: 30s # 容器启动后等待30秒再开始第一次健康检查 \ No newline at end of file