
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Snyk Broker用于代理snyk.io与Git仓库(如GitHub Enterprise、GitHub.com、Bitbucket Server)之间的访问,也可用于与本地Jira部署建立安全连接。Broker服务器和客户端建立应用隧道,代理snyk.io到Git的请求(从受监控仓库获取清单文件)以及Git到snyk.io的请求(Git发布的Web钩子)。Broker客户端运行在用户内部网络,将Git令牌等敏感数据保持在网络边界内,并通过请求白名单机制将访问权限限制为Snyk主动监控仓库所需的最小权限。
适用于企业内部网络环境中,需要安全连接snyk.io与以下服务的场景:
Broker客户端以Docker镜像形式发布,每种Git或服务类型对应特定镜像标签。通过环境变量进行标准和自定义配置,具体如下:
拉取镜像:docker pull snyk/broker:github-com
mandatory环境变量
BROKER_TOKEN:Snyk Broker令牌,从Snyk组织设置页面(app.snyk.io)获取GITHUB_TOKEN:具有repo、read:org和admin:repo_hook完整作用域的个人访问令牌PORT:Broker客户端接受连接的本地端口,默认7341BROKER_CLIENT_URL:Broker客户端的完整URL,供GitHub.com Web钩子访问,如http://my.broker.client:7341命令行参数示例
consoledocker run --restart=always \ -p 8000:8000 \ -e BROKER_TOKEN=secret-broker-token \ -e GITHUB_TOKEN=secret-github-token \ -e PORT=8000 \ -e BROKER_CLIENT_URL=http://my.broker.client:8000 \ snyk/broker:github-com
代理配置(参考https://docs.docker.com/network/proxy/%EF%BC%89%EF%BC%9A
console-e HTTP_PROXY=http://my.proxy.address:8080 -e HTTPS_PROXY=http://my.proxy.address:8080 -e NO_PROXY=*.test.example.com,.example2.com,127.0.0.0/8
派生Docker镜像示例
dockerfileFROM snyk/broker:github-com ENV BROKER_TOKEN secret-broker-token ENV GITHUB_TOKEN secret-github-token ENV PORT 8000 ENV BROKER_CLIENT_URL http://my.broker.client:8000
拉取镜像:docker pull snyk/broker:github-enterprise
mandatory环境变量
BROKER_TOKEN:Snyk Broker令牌,从Snyk组织设置页面获取GITHUB_TOKEN:具有repo、read:org和admin:repo_hook完整作用域的个人访问令牌GITHUB:GitHub Enterprise部署的主机名,如your.ghe.domain.comGITHUB_API:GitHub Enterprise的API端点,格式为your.ghe.domain.com/api/v3GITHUB_GRAPHQL:GitHub Enterprise的GraphQL端点,格式为your.ghe.domain.com/apiPORT:本地端口,默认7341BROKER_CLIENT_URL:供GitHub Enterprise Web钩子访问的Broker客户端完整URL命令行参数示例
consoledocker run --restart=always \ -p 8000:8000 \ -e BROKER_TOKEN=secret-broker-token \ -e GITHUB_TOKEN=secret-github-token \ -e GITHUB=your.ghe.domain.com \ -e GITHUB_API=your.ghe.domain.com/api/v3 \ -e GITHUB_GRAPHQL=your.ghe.domain.com/api \ -e PORT=8000 \ -e BROKER_CLIENT_URL=http://my.broker.client:8000 \ snyk/broker:github-enterprise
派生Docker镜像示例
dockerfileFROM snyk/broker:github-enterprise ENV BROKER_TOKEN secret-broker-token ENV GITHUB_TOKEN secret-github-token ENV GITHUB your.ghe.domain.com ENV GITHUB_API your.ghe.domain.com/api/v3 ENV GITHUB_GRAPHQL your.ghe.domain.com/api ENV PORT 8000 ENV BROKER_CLIENT_URL http://my.broker.client:8000
拉取镜像:docker pull snyk/broker:bitbucket-server
mandatory环境变量
BROKER_TOKEN:Snyk Broker令牌,从Bitbucket Server集成设置页面获取BITBUCKET_USERNAME:Bitbucket Server用户名BITBUCKET_PASSWORD:Bitbucket Server密码BITBUCKET:Bitbucket Server部署的主机名,如your.bitbucket-server.domain.comBITBUCKET_API:Bitbucket Server的API端点,格式为$BITBUCKET/rest/api/1.0BROKER_CLIENT_URL:供Bitbucket Server Web钩子访问的Broker客户端完整URLPORT:本地端口,默认7341命令行参数示例
consoledocker run --restart=always \ -p 8000:8000 \ -e BROKER_TOKEN=secret-broker-token \ -e BITBUCKET_USERNAME=username \ -e BITBUCKET_PASSWORD=password \ -e BITBUCKET=your.bitbucket-server.domain.com \ -e BITBUCKET_API=your.bitbucket-server.domain.com/rest/api/1.0 \ -e BROKER_CLIENT_URL=http://my.broker.client:8000 \ -e PORT=8000 \ snyk/broker:bitbucket-server
派生Docker镜像示例
dockerfileFROM snyk/broker:bitbucket-server ENV BROKER_TOKEN secret-broker-token ENV BITBUCKET_USERNAME username ENV BITBUCKET_PASSWORD password ENV BITBUCKET your.bitbucket-server.domain.com ENV BITBUCKET_API your.bitbucket-server.domain.com/rest/api/1.0 ENV PORT 8000
拉取镜像:docker pull snyk/broker:gitlab
mandatory环境变量
BROKER_TOKEN:Snyk Broker令牌,从GitLab集成设置页面获取GITLAB_TOKEN:具有api作用域的GitLab个人访问令牌GITLAB:GitLab部署的主机名,如your.gitlab.domain.com或GitLab.comPORT:本地端口,默认7341BROKER_CLIENT_URL:供GitLab Web钩子访问的Broker客户端完整URL命令行参数示例
consoledocker run --restart=always \ -p 8000:8000 \ -e BROKER_TOKEN=secret-broker-token \ -e GITLAB_TOKEN=secret-gitlab-token \ -e GITLAB=your.gitlab.domain.com \ -e BROKER_CLIENT_URL=http://my.broker.client:8000 \ -e PORT=8000 \ snyk/broker:gitlab
派生Docker镜像示例
dockerfileFROM snyk/broker:gitlab ENV BROKER_TOKEN secret-broker-token ENV GITLAB_TOKEN secret-gitlab-token ENV GITLAB your.gitlab.domain.com ENV BROKER_CLIENT_URL http://my.broker.client:8000 ENV PORT 8000
拉取镜像:docker pull snyk/broker:azure-repos
mandatory环境变量
BROKER_TOKEN:Snyk Broker令牌,从Azure Repos集成设置页面获取AZURE_REPOS_TOKEN:Azure Repos个人访问令牌(需选择"Custom defined",在Code下勾选"Read & write")AZURE_REPOS_ORG:组织名称,可在Azure组织概览页面找到AZURE_REPOS_HOST:Azure Repos Server部署的主机名,如your.azure-server.domain.comPORT:本地端口,默认7341BROKER_CLIENT_URL:供Azure Repos Web钩子访问的Broker客户端完整URL命令行参数示例
consoledocker run --restart=always \ -p 8000:8000 \ -e BROKER_TOKEN=secret-broker-token \ -e AZURE_REPOS_TOKEN=secret-azure-token \ -e AZURE_REPOS_ORG=org-name \ -e AZURE_REPOS_HOST=your.azure-server.domain.com \ -e BROKER_CLIENT_URL=http://my.broker.client:8000 \ -e PORT=8000 \ snyk/broker:azure-repos
派生Docker镜像示例
dockerfileFROM snyk/broker:azure-repos ENV BROKER_TOKEN secret-broker-token ENV AZURE_REPOS_TOKEN secret-azure-token ENV AZURE_REPOS_ORG org-name ENV AZURE_REPOS_HOST your.azure-server.domain.com ENV BROKER_CLIENT_URL http://my.broker.client:8000 ENV PORT 8000
拉取镜像:docker pull snyk/broker:artifactory
必要环境变量
BROKER_TOKEN:Snyk Broker令牌,从Artifactory集成设置页面获取ARTIFACTORY_URL:Artifactory部署的URL,如<yourdomain>.artifactory.com/artifactory命令行参数示例
consoledocker run --restart=always \ -p 8000:8000 \ -e BROKER_TOKEN=secret-broker-token \ -e ARTIFACTORY_URL=<yourdomain>.artifactory.com/artifactory \ snyk/broker:artifactory
派生Docker镜像示例
dockerfileFROM snyk/broker:artifactory ENV BROKER_TOKEN secret-broker-token ENV ARTIFACTORY_URL <yourdomain>.artifactory.com
拉取镜像:docker pull snyk/broker:nexus
必要环境变量
BROKER_TOKEN:Snyk Broker令牌,从Nexus集成设置页面获取BASE_NEXUS_URL:Nexus 3部署的URL,格式为https://[<user>:<pass>@]<your.nexus.hostname>BROKER_CLIENT_VALIDATION_URL:Nexus验证URL,需根据是否需要认证设置:
$BASE_NEXUS_URL/service/rest/v1/status/check(如https://<user>:<pass>@<your.nexus.hostname>/service/rest/v1/status/check)$BASE_NEXUS_URL/service/rest/v1/status(如https://<your.nexus.hostname>/service/rest/v1/status)RES_BODY_URL_SUB:NPM/Yarn集成所需的URL替换,格式为https://<your.nexus.hostname>/repository(不含末尾斜杠)权限要求:Nexus用户需具备以下权限(通过角色或直接分配):nx-metrics-all(系统状态检查端点)、nx-repository-view-{ecosystem-repo-name}-read和nx-repository-view-{ecosystem-repo-name}-browse
命令行参数示例
consoledocker run --restart=always \ -p 7341:7341 \ -e BROKER_TOKEN=secret-broker-token \ -e BASE_NEXUS_URL=https://[<user>:<pass>@]<your.nexus.hostname> \ -e BROKER_CLIENT_VALIDATION_URL=https://<your.nexus.hostname>/service/rest/v1/status[/check] \ -e RES_BODY_URL_SUB=https://<your.nexus.hostname>/repository \ snyk/broker:nexus
派生Docker镜像示例
dockerfileFROM snyk/broker:nexus ENV BROKER_TOKEN secret-broker-token ENV BASE_NEXUS_URL https://[<user>:<pass>@]<your.nexus.hostname> ENV BROKER_CLIENT_VALIDATION_URL https://<your.nexus.hostname>/service/rest/v1/status[/check] ENV RES_BODY_URL_SUB https://<your.nexus.hostname>/repository
注意:默认情况下,Nexus 3的Broker客户端会剥离X-Forwarded-For头,使Nexus返回npm tarball URI指向Nexus registry而非Broker服务器。设置环境变量
REMOVE_X_FORWARDED_HEADERS=false可禁用此行为。
拉取镜像:docker pull snyk/broker:nexus2(支持2.15及以上版本)
必要环境变量
BROKER_TOKEN:Snyk Broker令牌,从Nexus集成设置页面获取BASE_NEXUS_URL:Nexus 2部署的URL,格式为https://[<user>:<pass>@]<your.nexus.hostname>BROKER_CLIENT_VALIDATION_URL:Nexus验证URL,需根据是否需要认证设置:
$BASE_NEXUS_URL:<port>/systemcheck(如https://<user>:<pass>@<your.nexus.hostname>:<port>/systemcheck)$BASE_NEXUS_URL:<port>/systemcheck(如https://<your.nexus.hostname>:<port>/systemcheck)RES_BODY_URL_SUB:NPM/Yarn集成所需的URL替换,格式为https://<your.nexus.hostname>/nexus/content(不含末尾斜杠)权限要求:Nexus用户需具备以下权限(通过角色或直接分配):Status - (read)、All Repositories - (read)或{ecosystem} - (read)、All Repositories - (view)或{repoName} - (view)
命令行参数示例
consoledocker run --restart=always \ -p 7341:7341 \ -e BROKER_TOKEN=secret-broker-token \ -e BASE_NEXUS_URL=https://[<user>:<pass>@]<your.nexus.hostname> \ -e BROKER_CLIENT_VALIDATION_URL=https://<your.nexus.hostname>:<port>/systemcheck \ -e RES_BODY_URL_SUB=https://<your.nexus.hostname>/nexus/content/(groups|repositories) \ snyk/broker:nexus2
派生Docker镜像示例
dockerfileFROM snyk/broker:nexus2 ENV BROKER_TOKEN secret-broker-token ENV BASE_NEXUS_URL https://[<user>:<pass>@]<your.nexus.hostname> ENV BROKER_CLIENT_VALIDATION_URL https://<your.nexus.hostname>:<port>/systemcheck ENV RES_BODY_URL_SUB https://<your.nexus.hostname>/nexus/content/(groups|repositories)
注意:默认情况下,Nexus 2的Broker客户端会剥离X-Forwarded-For头,使Nexus返回npm tarball URI指向Nexus registry而非Broker服务器。设置环境变量
REMOVE_X_FORWARDED_HEADERS=false可禁用此行为。
拉取镜像:docker pull snyk/broker:jira
mandatory环境变量
BROKER_TOKEN:Snyk Broker令牌,从Jira集成设置页面获取JIRA_USERNAME:J您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 snyk/ubuntu 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: