我正在尝试将docker映像推送到Drone 0.8.5中的私有注册表中,并且当我将用户名和密码硬编码到管道中时它可以工作,但是我尝试在注册表选项卡中将注册表详细信息和秘密添加进来。 / p>
注册管道
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 accesskey secretkey添加密钥。
我已经阅读了其他主题和无人机文档,但仍然感到困惑。
谢谢。
答案 0 :(得分:1)
需要通过名称为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
有关更多配置选项,请参见drone plugin docs。
答案 1 :(得分:0)
此处用于管理无人机密钥 http://docs.drone.io/manage-secrets/#pull-requests
此外,您可能想考虑在构建中的.netrc
内使用Dockerfile
,因此您的凭据被嵌入到docker映像中