name: railway-deployment description: 管理 Railway 部署 - 查看日志、重部署、重启或移除部署。用于部署生命周期(移除、停止、重部署、重启)、部署可见性(列表、状态、历史)和故障排除(日志、错误、失败、崩溃)。不用于删除服务 - 为此,请使用 railway-environment 技能并设置 isDeleted。 version: 1.0.0 author: Railway license: MIT tags: [Railway, 部署, 日志, 调试, 故障排除, 重部署, 基础设施] dependencies: [railway-cli] allowed-tools: Bash(railway:*)
Railway 部署管理
管理现有的 Railway 部署:列出、查看日志、重部署或删除。
重要:“移除部署”(railway down)停止当前部署但保留服务。要完全删除服务,请使用 railway-environment 技能并设置 isDeleted: true。
何时使用
- 用户说“移除部署”、“关闭服务”、“停止部署”、“railway down”
- 用户想“重部署”、“重启服务”、“重启部署”
- 用户要求“列出部署”、“显示部署历史”、“部署状态”
- 用户要求“查看日志”、“显示日志”、“检查错误”、“调试问题”
列出部署
railway deployment list --limit 10 --json
显示部署 ID、状态和元数据。用于查找特定部署 ID 以进行日志查看或调试。
指定服务
railway deployment list --service backend --limit 10 --json
查看日志
部署日志
railway logs --lines 100 --json
在非交互模式下,流式传输自动禁用,CLI 获取日志后退出。
构建日志
railway logs --build --lines 100 --json
用于调试构建失败或查看构建输出。
失败/进行中部署的日志
默认情况下,railway logs 显示最近成功的部署。使用 --latest 查看当前部署:
railway logs --latest --lines 100 --json
过滤日志
# 仅错误
railway logs --lines 50 --filter "@level:error" --json
# 文本搜索
railway logs --lines 50 --filter "connection refused" --json
# 组合
railway logs --lines 50 --filter "@level:error AND timeout" --json
时间过滤
# 最后一小时的日志
railway logs --since 1h --lines 100 --json
# 30分钟到10分钟前的日志
railway logs --since 30m --until 10m --lines 100 --json
# 从特定时间戳开始的日志
railway logs --since 2024-01-15T10:00:00Z --lines 100 --json
格式:相对时间(30s、5m、2h、1d、1w)或 ISO 8601 时间戳。
特定部署的日志
部署日志:
railway logs <deployment-id> --lines 100 --json
构建日志:
railway logs --build <deployment-id> --lines 100 --json
从 railway deployment list 获取部署 ID。
注意: 部署 ID 是位置参数,不是 --deployment <id>。--deployment 标志是布尔标志,用于选择部署日志(相对于 --build 用于构建日志)。
重部署
重部署最近的部署:
railway redeploy --service <name> -y
-y 标志跳过确认。适用于:
- 通过 railway-environment 技能更改配置
- 无需新代码重启
- 先前部署成功但服务行为异常
仅重启容器
重启而不重新构建(获取外部资源更改):
railway restart --service <name> -y
当外部资源(S3 文件、配置映射)更改但代码未更改时使用。
移除部署
取下当前部署。服务保留但无运行部署。
# 移除链接服务的部署
railway down -y
# 移除特定服务的部署
railway down --service web -y
railway down --service api -y
这是用户说“移除部署”、“关闭”或“停止部署”时的意思。
注意: 这不删除服务。要完全删除服务,请使用 railway-environment 技能并设置 isDeleted: true。
CLI 选项
deployment list
| 标志 | 描述 |
|---|---|
-s, --service <NAME> |
服务名称或 ID |
-e, --environment <NAME> |
环境名称或 ID |
--limit <N> |
最大部署数(默认 20,最大 1000) |
--json |
JSON 输出 |
logs
| 标志 | 描述 |
|---|---|
-s, --service <NAME> |
服务名称或 ID |
-e, --environment <NAME> |
环境名称或 ID |
-d, --deployment |
显示部署日志(默认,布尔标志) |
-b, --build |
显示构建日志(布尔标志) |
-n, --lines <N> |
行数(必需) |
-f, --filter <QUERY> |
使用查询语法过滤 |
--since <TIME> |
开始时间(相对或 ISO 8601) |
--until <TIME> |
结束时间(相对或 ISO 8601) |
--latest |
最近部署(即使失败) |
--json |
JSON 输出 |
[DEPLOYMENT_ID] |
特定部署(可选) |
redeploy
| 标志 | 描述 |
|---|---|
-s, --service <NAME> |
服务名称或 ID |
-y, --yes |
跳过确认 |
restart
| 标志 | 描述 |
|---|---|
-s, --service <NAME> |
服务名称或 ID |
-y, --yes |
跳过确认 |
down
| 标志 | 描述 |
|---|---|
-s, --service <NAME> |
服务名称或 ID |
-e, --environment <NAME> |
环境名称或 ID |
-y, --yes |
跳过确认 |
呈现日志
显示日志时:
- 包括时间戳
- 高亮错误和警告
- 对于构建失败:显示错误并建议修复
- 对于运行时崩溃:显示堆栈跟踪上下文
- 总结模式(例如,“最近 100 条日志中有 15 个超时错误”)
可组合性
- 推送新代码:使用 railway-deploy 技能
- 检查服务状态:使用 railway-status 技能
- 修复配置问题:使用 railway-environment 技能
- 创建新服务:使用 railway-new 技能
错误处理
无链接服务
未链接服务。运行 `railway service` 以选择一个。
未找到部署
未找到部署。首先使用 `railway up` 进行部署。
未找到日志
部署可能太旧(日志保留限制)或服务未产生输出。