
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
WeGo Transit IDSS调度控制台的后端镜像,单镜像支持三种运行模式,可通过覆盖容器命令选择模式,同时支持运行初始化数据库、加载GTFS等一次性任务。
| 模式 | 命令 | 用途 |
|---|---|---|
| API(默认) | uvicorn app.main:app --host 0.0.0.0 --port 8000 | 为前端和外部集成提供FastAPI HTTP服务 |
| 车辆工作者 | python -m app.workers.vehicles_worker | 轮询Swiftly实时数据,摄入车辆位置并执行策略评估 |
| 调整工作者 | python -m app.workers.adjustment_worker | 轮询Swiftly调整信息并与本地数据库对账 |
bashdocker run --rm -p 8000:8000 \ --env-file .env \ -e TIMEZONE=America/Chicago \ -e DATABASE_URL='postgresql+psycopg://user:pass@your-db-host:5432/transit_db' \ -e SWIFTLY_API_KEY=<your-key> \ -e SWIFTLY_AGENCY=nashville \ linusmotu/fixed-line-transit-2.0-backend:latest # 验证健康状态 curl -fsS http://localhost:8000/health # → {"status":"healthy","database":"connected","timestamp":...}
需使用PostgreSQL 18 + PostGIS 3.6扩展(或兼容版本),因为多个表使用空间列(geography(Point,4326))和PostGIS函数。
通过docker-compose启动符合要求的PostgreSQL:
yamldb: image: postgis/postgis:18-3.6
bashdocker compose -f docker/docker-compose.yml --env-file .env up -d
注意:在Mac/Windows上,若PostgreSQL运行在宿主机,需将
POSTGRES_HOST设为host.docker.internal;Linux环境可使用--network host或宿主机IP。
CREATE EXTENSION postgis;postgis/postgis:18-3.6镜像| 变量 | 说明 |
|---|---|
TIMEZONE | 时区(如America/Chicago),缺失会触发运行时错误 |
DATABASE_URL(或POSTGRES_HOST+POSTGRES_USER+POSTGRES_PASSWORD+POSTGRES_DB) | 数据库连接信息 |
SWIFTLY_API_KEY | 工作者运行必需,API无此变量会导致Swiftly相关请求5xx |
SWIFTLY_AGENCY | Swiftly查询的机构标识(默认nashville) |
MONITORED_ROUTES | 监控的路线列表(逗号分隔,如55,56,20) |
GTFS_AGENCY_ID | GTFS feed中agency.txt的agency_id(默认WeGo Public Transit) |
| 变量 | 默认值 | 推荐值 |
|---|---|---|
DEBUG_MODE | true | false(避免500响应泄露堆栈) |
CORS_ORIGINS | * | 明确的源列表(如[***] |
COOKIE_SECURE | false | true |
COOKIE_SAMESITE | lax | strict |
bashdocker run --rm \ -e TIMEZONE=America/Chicago \ -e DATABASE_URL='postgresql+psycopg://user:pass@your-db-host:5432/transit_db' \ linusmotu/fixed-line-transit-2.0-backend:latest \ python bin/init_db.py -y
-y跳过交互确认,--keep-data保留现有数据。
需挂载本地GTFS文件目录:
bashdocker run --rm \ -e TIMEZONE=America/Chicago \ -e DATABASE_URL='postgresql+psycopg://user:pass@your-db-host:5432/transit_db' \ -v "$(pwd)/data:/app/data:ro" \ linusmotu/fixed-line-transit-2.0-backend:latest \ python bin/load_gtfs.py data/gtfs/google_transit.zip --routes 55,56,20 --service all --promote
bashdocker run --rm \ -e DATABASE_URL='postgresql+psycopg://...' \ linusmotu/fixed-line-transit-2.0-backend:latest \ alembic stamp head
bashdocker run -d --restart unless-stopped \ --name flt-vehicles \ -e TIMEZONE=America/Chicago \ -e DATABASE_URL='postgresql+psycopg://...' \ -e SWIFTLY_API_KEY=<key> \ -e SWIFTLY_AGENCY=nashville \ -e MONITORED_ROUTES=55,56,20 \ linusmotu/fixed-line-transit-2.0-backend:latest \ python -m app.workers.vehicles_worker
bashdocker run -d --restart unless-stopped \ --name flt-adjustments \ -e TIMEZONE=America/Chicago \ -e DATABASE_URL='postgresql+psycopg://...' \ -e SWIFTLY_API_KEY=<key> \ -e SWIFTLY_AGENCY=nashville \ -e SWIFTLY_ADJUSTMENT_QUERY_AGENCY=<your-agency> \ -e SWIFTLY_ADJUSTMENT_CREATE_AGENCY=<your-agency> \ linusmotu/fixed-line-transit-2.0-backend:latest \ python -m app.workers.adjustment_worker
API模式通过/health端点提供健康检查:
dockerfileHEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ CMD curl -fsS http://localhost:8000/health || exit 1
工作者无HTTP服务,docker ps显示(health: starting)为正常状态。
python:3.13-slimapp/appuv export生成锁文件,pip install安装DATABASE_URL)应从Secrets Manager获取,避免明文存储https://github.com/smarttransit-ai/fixed-line-transit-2.0-backend
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务