[ PROMPT_NODE_26156 ]
railway-service
[ SKILL_DOCUMENTATION ]
# Railway 服务管理
检查状态、更新属性以及进行高级服务创建。
## 何时使用
- 用户询问服务状态、健康状况或部署情况
- 用户询问“我的服务部署了吗?”
- 用户想要重命名服务或更改服务图标
- 用户想要链接不同的服务
- 用户想要将 Docker 镜像部署为新服务(高级)
**注意:** 对于使用本地代码创建服务(常见情况),请优先使用 railway-new 工具,它会一并处理项目设置、脚手架和服务的创建。
**对于 GitHub 仓库源:** 使用 railway-new 工具创建空服务,然后使用 railway-environment 工具通过暂存变更 API 配置 source.repo。
## 创建服务
通过 GraphQL API 创建新服务。目前没有对应的 CLI 命令。
### 获取上下文
bash
railway status --json
提取:
- `project.id` - 用于创建服务
- `environment.id` - 用于暂存实例配置
### 创建服务 Mutation
graphql
mutation serviceCreate($input: ServiceCreateInput!) {
serviceCreate(input: $input) {
id
name
}
}
### ServiceCreateInput 字段
| 字段 | 类型 | 描述 |
|-------|------|-------------|
| `projectId` | String! | 项目 ID (必填) |
| `name` | String | 服务名称 (若省略则自动生成) |
| `source.image` | String | Docker 镜像 (例如 `nginx:latest`) |
| `source.repo` | String | GitHub 仓库 (例如 `user/repo`) |
| `branch` | String | 仓库源的 Git 分支 |
| `environmentId` | String | 若设置且为分支,则仅在该环境中创建 |
### 示例:创建空服务
bash
bash <<'SCRIPT'
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh
'mutation createService($input: ServiceCreateInput!) {
serviceCreate(input: $input) { id name }
}'
'{"input": {"projectId": "PROJECT_ID"}}'
SCRIPT
### 示例:使用镜像创建服务
bash
bash <<'SCRIPT'
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh
'mutation createService($input: ServiceCreateInput!) {
serviceCreate(input: $input) { id name }
}'
'{"input": {"projectId": "PROJECT_ID", "name": "my-service", "source": {"image": "nginx:latest"}}}'
SCRIPT
### 连接 GitHub 仓库
**不要使用带有 source.repo 的 serviceCreate** - 请改用暂存变更 API。
工作流:
1. 创建空服务:`serviceCreate(input: {projectId: "...", name: "my-service"})`
2. 使用 railway-environment 工具通过暂存变更 API 配置源
3. 应用以触发部署
### 创建后