我试图将docker镜像推送到Drone 0.8.5中的私有(private)注册表中,并且当我将用户名和密码硬编码到管道中时它可以工作,但是我尝试在注册表选项卡中将注册表详细信息和 secret 添加进去。
注册表管道
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添加密钥。
我已经阅读了其他主题和无人机文档,但仍然感到困惑。
提前致谢。
最佳答案
secret 需要通过名称为docker_username
和和docker_password
的环境注入(inject)到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。