我正在尝试将 docker 映像推送到 Drone 0.8.5 中的私有注册表中,当我将用户名和密码硬编码到管道中时它可以工作,但是我尝试在注册表选项卡中添加注册表详细信息并作为机密。
注册表管道
docker-registry-push:
image: plugins/docker
repo: registry.domain.com:5000/app
registry: registry.domain.com:5000
insecure: true
pull: true
失败并显示no basic auth credentials
最后,我尝试了变量替换。(带有 $REGISTRY_USERNAME 和 $$REGISTRY_USERNAME 变量。都会导致错误msg="Error authenticating: exit status 1"
docker-registry-push:
image: plugins/docker
repo: registry.domain.com:5000/app
registry: registry.domain.com:5000
secrets:
- source: registry_username
target: username
- source: registry_password
target: password
insecure: true
pull: true
另一次尝试
docker-registry-push:
image: plugins/docker
repo: registry.domain.com:5000/app
registry: registry.domain.com:5000
username: ${REGISTRY_USERNAME}
password: ${REGISTRY_PASSWORD}
secrets: [ registry_username, registry_password ]
insecure: true
pull: true
这真的很令人沮丧。在此之后,我也需要通过正确的方法为Rancher访问密钥密钥添加机密。
我已经阅读了其他主题和无人机文档,但仍然感到困惑。
提前谢谢。
需要通过名为docker_username
和docker_password
的环境将机密注入 docker 容器。
您的.drone.yml
文件应如下所示:
pipeline:
docker:
image: plugins/docker
repo: username/app
registry: registry.domain.com:5000
insecure: true
pull: true
secrets:
- source: registry_username
target: docker_username
- source: registry_password
target: docker_password
有关更多配置选项,请参阅无人机插件文档。
这里是管理无人机密钥http://docs.drone.io/manage-secrets/#pull-requests
此外,你可能要考虑在构建中使用内部Dockerfile
.netrc
,以便将凭据嵌入到 Docker 映像中