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
代理配置(参考配置Docker使用代理服务器):
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 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务