| volumes: | |
| mysql_data: | |
| services: | |
| gemini-balance: | |
| image: ghcr.io/snailyp/gemini-balance:latest | |
| container_name: gemini-balance | |
| restart: unless-stopped | |
| 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秒再开始第一次健康检查 | |
| # adminer: | |
| # image: adminer:latest | |
| # container_name: gemini-balance-adminer | |
| # restart: unless-stopped | |
| # ports: | |
| # - "8080:8080" | |
| # depends_on: | |
| # mysql: | |
| # condition: service_healthy |