drone.io使用私人仓库从图像中提取

时间:2019-08-13 08:40:18

标签: docker drone drone.io

必须在我的无人机构建过程中使用来自aws或gcp的私有映像。

最简单的DOCKERFILE示例:

FROM ***.dkr.ecr.eu-central-1.amazonaws.com/***:latest

这意味着我必须登录,这很好。我的drone.yml示例:

steps:
  - name: docker
    privileged: true
    image: revenuehack/drone-ecr-auth
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: aws_access_id
      AWS_SECRET_ACCESS_KEY:
        from_secret: aws_key
      AWS_REGION: eu-central-1
    commands:
      - aws ecr get-login --region $AWS_REGION --no-include-email | sh

但是现在我必须提取图像并将其用于ci流程的不同步骤。其他问题建议绑定docker.sock like here。我觉得不对。我宁愿为此提供某种服务。那可能吗?同样,此绑定不起作用:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock)

1 个答案:

答案 0 :(得分:0)

选项1:全球注册表

我个人建议使用drone-registry-plugin,这样可以很好地保持对ECR存储库的实时访问:

现在,对此建议有一个警告,就是它模仿了v0.8全局注册表功能,因此安装中维护的所有管道都可以访问注册表。

选项2:本地docker config.json

由于从技术上讲也可以由任何人运行,因此我不确定您从注册表插件中获得了什么,但这是参考:

此选项涉及使用cloud-init或其他机制将.docker / config.json放置到代理上,然后在各个管道中可以添加另一个根级别的yaml块image_pull_secrets:

kind: pipeline
name: default

steps:
- name: someStep
  image: some.registry.dev/some-image:latest

image_pull_secrets:
- dockerconfigjson