关于 deployment
deployment 是用于管理现有 Railway 部署的命令行技能,涵盖部署列表、日志查看与筛选、重新部署和重启;停止部署不会删除服务。
主要功能
- 01列出部署及状态
- 02查看并筛选部署或构建日志
- 03重新部署或重启服务
- 04停止部署但保留服务
适用场景
- 01查找部署并查看其状态
- 02排查构建失败或运行时错误
- 03配置变更后重启服务
- 04停止运行中的部署并保留服务
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ railwayapp/ railway-skills --skill deployment安装后在 Claude Code 中输入/deployment确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/environment-config.mdmonorepo.mdrailpack.mdvariables.md详细介绍
部署管理
管理现有的 Railway 部署:列出、查看日志、重新部署或移除。
重要:“移除部署”(railway down)会停止当前部署,但保留服务。若要彻底删除服务,请使用 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
筛选日志
# Errors only
railway logs --lines 50 --filter "@level:error" --json
# Text search
railway logs --lines 50 --filter "connection refused" --json
# Combined
railway logs --lines 50 --filter "@level:error AND timeout" --json
按时间筛选
# Logs from last hour
railway logs --since 1h --lines 100 --json
# Logs between 30 and 10 minutes ago
railway logs --since 30m --until 10m --lines 100 --json
# Logs from specific timestamp
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 标志会跳过确认。适用于以下情况:
- 通过 environment 技能更改了配置
- 需要重启,但没有新代码
- 上一次部署成功,但服务运行异常
仅重启容器
不重新构建,直接重启(获取外部资源的更改):
railway restart --service <name> -y
当外部资源(S3 文件、配置映射)有更改,但代码没有更改时使用。
移除部署
停止当前部署。服务仍会保留,但没有正在运行的部署。
# Remove deployment for linked service
railway down -y
# Remove deployment for specific service
railway down --service web -y
railway down --service api -y
用户说“移除部署”“关闭”或“停止部署”时,指的就是这个操作。
**注意:**这不会删除服务。若要彻底删除服务,请使用 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 条超时错误”)
可组合性
- 推送新代码:使用
deployskill - 检查服务状态:使用
statusskill - 修复配置问题:使用
environmentskill - 创建新服务:使用
newskill
错误处理
未关联服务
No service linked. Run `railway service` to select one.
未找到部署记录
No deployments found. Deploy first with `railway up`.
未找到日志
部署时间可能过久(受日志保留期限限制),或者服务尚未产生输出。