Files
zhixing-system/docker-compose.prod.yml
T
yuxuanhui afdc5ca909
Deploy Production / deploy (push) Successful in 1m42s
feat(deploy): 接入生产密钥与数据库迁移
2026-08-05 22:45:57 +08:00

84 lines
2.1 KiB
YAML

name: ${COMPOSE_PROJECT_NAME:-zhixing-system}
services:
server:
build:
context: ./zhixing-server
target: production
restart: unless-stopped
environment:
ZHIXING_APP_ENV: production
ZHIXING_DATABASE_URL: ${ZHIXING_DATABASE_URL:?Set ZHIXING_DATABASE_URL to the 1Panel PostgreSQL URL}
ZHIXING_LOG_LEVEL: ${ZHIXING_LOG_LEVEL:-INFO}
ZHIXING_MARKET_DATA_CSV_ROOT: /app/data/market-data
ZHIXING_TUSHARE_TOKEN: ${ZHIXING_TUSHARE_TOKEN:-}
init: true
expose:
- "8000"
healthcheck:
test:
- CMD
- python
- -c
- "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/healthz')"
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
volumes:
- market-data:/app/data/market-data
networks:
- default
- 1panel-network
web:
build:
context: ./zhixing-web
target: production
restart: unless-stopped
depends_on:
server:
condition: service_healthy
environment:
API_UPSTREAM: http://server:8000
init: true
ports:
- "127.0.0.1:${ZHIXING_WEB_PORT:-8111}:80"
migrate:
profiles: ["jobs"]
build:
context: ./zhixing-server
target: production
command: ["alembic", "upgrade", "head"]
environment:
ZHIXING_DATABASE_URL: ${ZHIXING_DATABASE_URL:?Set ZHIXING_DATABASE_URL to the 1Panel PostgreSQL URL}
networks:
- 1panel-network
market-sync:
profiles: ["jobs"]
build:
context: ./zhixing-server
target: production
command: ["market-data-sync"]
depends_on:
migrate:
condition: service_completed_successfully
environment:
ZHIXING_DATABASE_URL: ${ZHIXING_DATABASE_URL:?Set ZHIXING_DATABASE_URL to the 1Panel PostgreSQL URL}
ZHIXING_MARKET_DATA_CSV_ROOT: /app/data/market-data
ZHIXING_TUSHARE_TOKEN: ${ZHIXING_TUSHARE_TOKEN:-}
volumes:
- market-data:/app/data/market-data
networks:
- 1panel-network
volumes:
market-data:
networks:
1panel-network:
name: 1panel-network
external: true