argoproj/artifact-gatewayArtifact Gateway 是一款轻量级制品网关服务,旨在为企业软件研发流程提供统一的制品管理与分发能力。该服务通过整合多类型制品仓库(如Maven、npm、Docker Registry等),简化跨仓库访问复杂度,同时提供缓存加速、安全管控和统一访问入口,有效提升制品分发效率与系统安全性。
统一管理多团队私有仓库(如部门级Maven仓库、项目级npm仓库),实现跨团队制品共享,避免重复建设存储资源。
在多区域部署网关实例,通过跨区域缓存同步,解决跨国团队制品下载延迟问题,提升研发效率。
集中管理外部公共仓库(如Maven Central、npmjs.com)访问,实现第三方制品白名单控制,降低供应链安全风险。
作为CI/CD流水线的制品枢纽,为构建工具(Jenkins、GitLab CI)提供统一制品源,简化流水线配置,提升构建稳定性。
bashdocker run -d \ --name artifact-gateway \ -p 8080:8080 \ -e GATEWAY_PORT=8080 \ -e ADMIN_USER=admin \ -e ADMIN_PASSWORD=SecurePass123! \ -v ./cache:/var/lib/artifact-gateway/cache \ artifact-gateway:latest
| 环境变量名 | 描述 | 必选 | 默认值 |
|---|---|---|---|
GATEWAY_PORT | 服务监听端口 | 否 | 8080 |
ADMIN_USER | 管理员用户名 | 否 | admin |
ADMIN_PASSWORD | 管理员登录密码 | 是 | - |
CACHE_ROOT | 缓存存储路径 | 否 | /var/lib/artifact-gateway/cache |
MAX_CACHE_SIZE_GB | 最大缓存空间(GB) | 否 | 10 |
LOG_LEVEL | 日志级别(DEBUG/INFO/WARN/ERROR) | 否 | INFO |
SECURITY_ENABLED | 是否启用高级安全功能 | 否 | false |
JAVA_OPTS | JVM运行参数 | 否 | -Xms512m -Xmx1g |
yamlversion: '3.8' services: artifact-gateway: image: artifact-gateway:latest container_name: artifact-gateway restart: always ports: - "8080:8080" environment: - GATEWAY_PORT=8080 - ADMIN_USER=admin - ADMIN_PASSWORD=${GATEWAY_ADMIN_PASSWORD} - MAX_CACHE_SIZE_GB=20 - LOG_LEVEL=INFO - SECURITY_ENABLED=true volumes: - gateway-cache:/var/lib/artifact-gateway/cache - gateway-config:/etc/artifact-gateway networks: - devops-network networks: devops-network: driver: bridge volumes: gateway-cache: gateway-config:
通过Web控制台或API添加仓库配置,以下为典型Maven仓库配置示例:
bash# 添加Maven中央仓库 curl -X POST http://localhost:8080/api/v1/repositories \ -u admin:SecurePass123! \ -H "Content-Type: application/json" \ -d '{ "name": "maven-central", "type": "maven", "url": "[***]", "cacheEnabled": true, "cacheTTL": 48, "priority": 1, "authType": "none" }'
| 参数名 | 类型 | 描述 | 取值范围 |
|---|---|---|---|
name | 字符串 | 仓库唯一标识(不可重复) | 字母、数字、连字符 |
type | 字符串 | 仓库类型 | maven/npm/docker/pypi/helm |
url | 字符串 | 上游仓库URL | 有效的HTTP/HTTPS URL |
cacheEnabled | 布尔值 | 是否启用缓存 | true/false |
cacheTTL | 整数 | 缓存过期时间(小时) | 1-720 |
priority | 整数 | 仓库优先级(数字越小优先级越高) | 1-10 |
authType | 字符串 | 认证类型 | none/basic/oauth2/ldap |
authConfig | JSON | 认证配置(依authType不同而变化) | 如basic认证需包含username/password |
SECURITY_ENABLED=true启用安全功能-e JAVA_OPTS="-Xms2g -Xmx4g")
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务