services: tushare: build: ./tushare env_file: ./tushare/.env environment: - DB_PATH=/app/data/futures.db volumes: - ./data:/app/data command: ["python", "-m", "src.main"] web: build: context: ./web dockerfile: backend/Dockerfile env_file: ./web/backend/.env environment: - LISTEN_ADDR=:8080 - FUTURES_DB_PATH=/app/data/futures.db - AUTH_DB_PATH=/app/auth/auth.db volumes: # futures.db 由 tushare 写入,web 端通过 DSN mode=ro&query_only 只读访问; # 不在容器层加 :ro,因为 WAL 模式下读访问也需要写 -shm 同步文件 - ./data:/app/data # auth.db 由 web 自己写,落在 ./data/auth.db (已被 .gitignore) - ./data:/app/auth ports: - "8080:8080" restart: unless-stopped