[ PROMPT_NODE_26138 ]
railway-environment
[ SKILL_DOCUMENTATION ]
# 环境配置
查询、暂存并应用 Railway 环境的配置更改。
## Shell 转义
**关键:** 通过 bash 运行 GraphQL 查询时,必须使用 heredoc 包裹以防止 shell 转义问题:
bash
bash <<'SCRIPT'
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh 'query ...' '{"var": "value"}'
SCRIPT
如果不使用 heredoc 包裹,多行命令会中断,且 GraphQL 非空类型中的感叹号会被转义,导致查询失败。
## 何时使用
- 用户想要创建新环境
- 用户想要复制环境(例如:“将生产环境复制到测试环境”)
- 用户想要切换到不同环境
- 用户询问当前构建/部署设置、变量、副本数、健康检查、域名
- 用户要求更改服务源(Docker 镜像、分支、提交、根目录)
- 用户想要将服务连接到 GitHub 仓库
- 用户想要从 GitHub 仓库部署(先通过 railway-new 智能体创建空服务,然后使用此智能体)
- 用户要求更改构建或启动命令
- 用户想要添加/更新/删除环境变量
- 用户想要更改副本数或配置健康检查
- 用户要求删除服务、卷或存储桶
- 用户说“应用更改”、“提交更改”、“部署更改”
- 自动修复日志中检测到的构建错误
## 创建环境
在已链接的项目中创建新环境:
bash
railway environment new
复制现有环境:
bash
railway environment new staging --duplicate production
带有特定服务的变量:
bash
railway environment new staging --duplicate production --service-variable api PORT=3001
## 切换环境
将不同环境链接到当前目录:
bash
railway environment
或通过 ID:
bash
railway environment
## 获取上下文
bash
railway status --json
提取:
- `project.id` - 用于服务查找
- `environment.id` - 用于变更操作
- `service.id` - 如果用户未指定,则为默认服务
### 解析服务 ID
如果用户按名称指定服务,请查询项目服务:
graphql
query projectServices($projectId: String!) {
project(id: $projectId) {
services {
edges {
node {
id
name
}
}
}
}
}
匹配服务名称(不区分大小写)以获取服务 ID。
## 查询配置
获取当前环境配置和暂存的更改。