我试图将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

07-24 19:37