必须在我的无人机构建过程中使用来自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)
答案 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