You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地Docker部署Screwdriver UI创建管道时SCM跳转异常求助

Fix: Screwdriver UI Redirects to "nil" URL When Clicking SCM Button (Docker Deployment)

你猜的没错,这个跳转异常确实是因为GitHub认证相关的配置缺失导致的——Screwdriver UI找不到正确的SCM(源代码管理)认证端点,所以才会出现http://localhost:8000/nil/v4/auth/login/web这种带nil的错误URL。下面是具体的解决步骤:

1. 明确需要配置的核心环境变量

Screwdriver UI需要知道API地址以及GitHub的认证信息,你需要在启动Docker容器时添加以下关键环境变量:

  • SD_API_URL: 指向你的Screwdriver API服务地址(本地部署通常是http://localhost:8080,要确保API容器也在正常运行)
  • SD_SCM_SETTINGS: 包含GitHub认证的详细配置,格式为JSON字符串

2. 启动容器时添加完整配置示例

先停止当前运行的UI容器,再用包含完整环境变量的命令重新启动:

docker run -d \
  --name screwdriver-ui \
  -p 8000:8000 \
  -e SD_API_URL=http://localhost:8080 \
  -e SD_SCM_SETTINGS='{"github": {"url": "https://github.com", "clientId": "你的GitHub OAuth应用Client ID", "clientSecret": "你的GitHub OAuth应用Client Secret", "scope": ["repo", "user:email"]}}' \
  screwdrivercd/ui:latest

3. 关键配置细节说明

  • GitHub OAuth应用创建: 你需要先在GitHub上创建一个OAuth应用,回调地址必须设置为http://localhost:8000/auth/github/callback(如果UI的访问地址不是localhost:8000,要对应修改)
  • SD_SCM_SETTINGS参数解析:
    • url: GitHub的官方地址(公网用https://github.com,企业版用对应内网地址)
    • clientId/clientSecret: 来自你刚创建的GitHub OAuth应用的凭证
    • scope: 申请的权限,至少需要repo和user:email才能正常创建并管理管道

4. 验证配置生效

重启容器后,访问http://localhost:8000/create,再次点击SCM按钮,应该会跳转到GitHub的授权页面,而不是带nil的错误URL了。

额外排查点

如果问题依旧,检查以下内容:

  • Screwdriver API容器是否也配置了对应的SCM认证(API的环境变量同样需要包含GitHub的clientId和clientSecret)
  • 本地的API和UI容器是否在同一个网络环境下,确保UI能正常访问API服务

内容的提问来源于stack exchange,提问作者user3487120

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:29:24