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。对我来说感觉不对。我宁愿为此提供某种服务。这可能吗?此外,此绑定不起作用:

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

选项 1:全局注册表

就个人而言,我建议使用drone-registry-plugin,非常适合保持对 ECR 存储库的访问:

  • https://github.com/drone/drone-registry-plugin

现在,需要注意的是,此建议模仿 v0.8 全局注册表功能,因此安装中维护的所有管道都能够访问注册表。

选项 2:本地 dockerconfig.json

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

  • https://discourse.drone.io/t/how-to-pull-private-images-with-1-0/3155

此选项涉及使用 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

相关内容

  • 没有找到相关文章

最新更新