Files
etf/docker-compose.flask.yml
aszerW 18a1b2b01f feat(docker): 添加 Flask API 服务容器化配置
- 更新 requirements.txt 添加 flask 和 flask-cors 依赖
- 新增 Dockerfile.flask:Flask API 服务专用镜像
- 新增 docker-compose.flask.yml:支持 docker-compose 部署
- 配置健康检查、资源限制、环境变量映射
- 支持 SSH 隧道配置通过环境变量注入
2026-05-07 22:15:10 +08:00

81 lines
1.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Flask API 服务 Docker Compose 配置
# ===================================
version: '3.8'
services:
etf-data-fetcher:
build:
context: .
dockerfile: Dockerfile.flask
image: 192.168.0.115:5000/etf-data-fetcher:latest
container_name: etf-data-fetcher
ports:
- "5000:5000"
environment:
# Flask 配置
- FLASK_ENV=production
- PYTHONUNBUFFERED=1
# SSH 隧道配置(可选,启用后可获取港美股数据)
- SSH_ENABLED=${SSH_ENABLED:-false}
- SSH_HOST=${SSH_HOST:-8.218.167.69}
- SSH_PORT=${SSH_PORT:-22}
- SSH_USERNAME=${SSH_USERNAME:-root}
- SSH_KEY_PATH=${SSH_KEY_PATH:-hk_ecs.pem}
- SSH_LOCAL_PORT=${SSH_LOCAL_PORT:-1080}
volumes:
# 环境变量配置必需TUSHARE_TOKEN
- ./.env:/app/.env:ro
# SSH 私钥(可选,获取港美股数据需要)
- ./hk_ecs.pem:/app/hk_ecs.pem:ro
# 数据目录(可选,用于持久化缓存)
- ./data:/app/data
# 日志目录
- ./logs:/app/logs
# 健康检查
healthcheck:
test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:5000/health')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
# 重启策略
restart: unless-stopped
# 资源限制
deploy:
resources:
limits:
cpus: '2.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 512M
# 可选Nginx 反向代理
nginx:
image: nginx:alpine
container_name: etf-data-fetcher-nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- etf-data-fetcher
restart: unless-stopped
profiles:
- with-nginx
networks:
default:
name: etf-network