SuperAPI AI 工具集

deploy

部署与运维

查看项目

更新于 10-13 21:32

技能介绍

用途

该技能用于把当前目录中的代码部署到 Railway。当用户提出部署相关需求时触发,例如要求 "deploy"(部署)、"ship"(发布)、"push code"(推送代码),说出 "railway up" 或 "deploy to Railway",希望部署本地代码改动,或要求 "deploy and fix any issues"(部署并修复问题,此时应使用 --ci 模式)。

主要能力

  • 使用 railway up 从当前目录部署代码到 Railway。
  • 支持两种模式:分离模式(默认)与 CI 模式。
  • 可指定部署目标服务、环境或未链接的项目。
  • 支持通过 -m 标志附带提交信息。

提交信息

应始终使用 -m 标志并提供描述性提交信息,概括本次部署的内容,例如:

railway up --detach -m "Add user authentication endpoint"

良好的提交信息示例:

  • 描述改动内容:"Fix memory leak in worker process"
  • 引用工单/问题:"Implement feature #123"
  • 简洁但有意义:"Update deps and fix build warnings"

模式

分离模式(默认)

发起部署后立即返回,适用于大多数部署场景。

railway up --detach -m "Deploy description here"

CI 模式

流式输出构建日志直到完成。适用于用户希望观察构建过程或需要排查问题的场景。

railway up --ci -m "Deploy description here"

使用 CI 模式的时机:

  • 用户说 "deploy and watch"(部署并观察)、"deploy and fix issues"(部署并修复问题)。
  • 用户正在调试构建失败。
  • 用户希望看到构建输出。

部署指定服务

默认部署到已链接的服务。若需部署到其他服务:

railway up --detach --service backend -m "Deploy description here"

部署到未链接的项目

无需先链接即可部署到某个项目:

railway up --project <project-id> --environment production --detach -m "Deploy description here"

需要同时提供 --project 与 --environment 两个标志。

CLI 选项

  • -m, --message <MSG>:描述本次部署的提交信息(应始终使用)。
  • -d, --detach:不附加日志(默认)。
  • -c, --ci:流式输出构建日志,完成后退出。
  • -s, --service <NAME>:目标服务(默认使用已链接的服务)。
  • -e, --environment <NAME>:目标环境(默认使用已链接的环境)。
  • -p, --project <ID>:目标项目(需要同时提供 --environment)。
  • [PATH]:要部署的路径(默认为当前目录)。

目录链接

Railway CLI 会沿目录树向上一层查找已链接的项目。若当前处于已链接项目的子目录中,无需重新链接。

对于子目录部署,建议先通过 environment 技能设置 rootDirectory,然后正常使用 railway up 部署。

部署之后

分离模式

输出 "Deploying to <service>...",随后可使用 deployment 技能查看构建状态(搭配 --lines 标志)。

CI 模式

构建日志会内联流式输出。若构建失败,错误会出现在输出中。CI 模式之后不要运行 railway logs --build,因为日志已经流式输出过。若需要更多上下文,可使用 deployment 技能搭配 --lines 标志(切勿直接流式输出)。

组合使用

  • 部署后检查状态:使用 service 技能。
  • 查看日志:使用 deployment 技能。
  • 修复配置问题:使用 environment 技能。
  • 修复配置后重新部署:使用 environment 技能。

错误处理

未链接项目

提示 "No Railway project linked. Run railway link first." 需先运行 railway link。

未链接服务

提示 "No service linked." 使用 --service 标志或运行 railway service 选择一个服务。

构建失败(CI 模式)

构建日志已经流式输出,可直接从 railway up --ci 的输出中分析。CI 模式之后不要运行 railway logs(它会无限流式输出,除非加上 --lines)。

常见问题:

  • 缺少依赖:检查 package.json/requirements.txt。
  • 构建命令有误:使用 environment 技能修复。
  • Dockerfile 问题:检查 dockerfile 路径。