28 lines
1.5 KiB
YAML
28 lines
1.5 KiB
YAML
# akg-factor-bridge:独立部署单元,可落在任意能同时连通「基座PG/153/平台MySQL」的服务器。
|
||
# 容器常驻并提供计划 API(uvicorn :8300,见 api.py,07-30);构建/出计划仍由宿主
|
||
# cron 以 docker exec 触发。将来接 XXL-JOB / 事件回调,触发器打这层 API 即可。
|
||
services:
|
||
akg-factor-bridge:
|
||
build: .
|
||
container_name: akg_factor_bridge
|
||
env_file: .env
|
||
restart: unless-stopped
|
||
# uvicorn 起不来时(如镜像未重建、缺 fastapi)退回 sleep——保住 cron 的 docker exec
|
||
command: sh -c "uvicorn api:app --host 0.0.0.0 --port 8300 || sleep infinity"
|
||
ports:
|
||
- "${BRIDGE_API_PORT:-8300}:8300"
|
||
volumes:
|
||
- .:/app # 代码卷挂载:改码即生效,不用重构镜像(开发期)。冻结成 prod 镜像时删此行并 --build。
|
||
# 跨机部署(默认):.env 三处用 LAN IP,默认 bridge 网络出网到 LAN 即可。
|
||
# 与 astock-kg 同机同网时,改用服务名连基座 PG——取消下面两行注释并填网络名:
|
||
# networks: [default, akg_net]
|
||
# 触发示例(宿主 crontab,每日 18:40):
|
||
# 40 18 * * 1-5 docker exec akg_factor_bridge python run.py build all --mode daily
|
||
|
||
# 同机同网方案才需要:把 astock-kg 的 compose 网络作为 external 引入
|
||
# networks:
|
||
# akg_net:
|
||
# external: true
|
||
# name: <astock-kg 的网络名,用 `docker network ls` 查,通常形如 astock-kg_default>
|
||
|