如何从drone ci管道中的私有docker注册表中提取图像 问题 我需要在测试管道中使用来自私有docker映像注册表的映像 我找不到任何编辑:忽略了关于如何将私有docker注册表与一般的无人机或专门配置的存储库一起使用的最新文档。 情况
操作系统版本:ubuntu 18.04 lts 无人机版本:1.0.0 docker版本:18.09.4 docker compose版本:1.23.2 我亲自主持无人机ci,docker和docker组成一个大师,两个特工 管道配置示例:如何从drone ci管道中的私有docker注册表中提取图像 问题 我需要在测试管道中使用来自私有docker映像注册表的映像 我找不到任何编辑:忽略了关于如何将私有docker注册表与一般的无人机或专门配置的存储库一起使用的最新文档。 情况,docker,drone,drone.io,Docker,Drone,Drone.io,操作系统版本:ubuntu 18.04 lts 无人机版本:1.0.0 docker版本:18.09.4 docker compose版本:1.23.2 我亲自主持无人机ci,docker和docker组成一个大师,两个特工 管道配置示例: --- kind: pipeline name: integration steps: - name: tests image: private-registry.example.com/nodejs/special commands
---
kind: pipeline
name: integration
steps:
- name: tests
image: private-registry.example.com/nodejs/special
commands:
- npm i
- npm run test
when:
event:
- push
- pull_request
...
无人机文档
无人机的文档涉及在不提供链接的情况下配置专用注册表,或在图像部分提供如何实现此目的的更多详细信息,说明:
如果图像不存在,无人机会指示Docker将其拉出。如果映像是私有的,则需要配置注册表凭据
我发现op在文档中引用的问题已经不存在了
问题的作者和接受答案的作者都在使用drone cli使用registry命令向drone添加注册表。但不幸的是,该命令不再可用
当前的无人机cli使用消息如下所示:
NAME:
drone - command line utility
USAGE:
drone [global options] command [command options] [arguments...]
VERSION:
1.0.7
COMMANDS:
build manage builds
cron manage cron jobs
log manage logs
encrypt encrypt a secret
exec execute a local build
info show information about the current user
repo manage repositories
user manage users
secret manage secrets
server manage servers
queue queue operations
autoscale manage autoscaling
fmt format the yaml file
convert convert legacy format
lint lint the yaml file
sign sign the yaml file
jsonnet generate .drone.yml from jsonnet
script generate .drone.yml from script
plugins plugin helper functions
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
-t value, --token value server auth token [$DRONE_TOKEN]
-s value, --server value server address [$DRONE_SERVER]
--autoscaler value autoscaler address [$DRONE_AUTOSCALER]
--help, -h show help
--version, -v print the version
我发现了一个关于从2014年开始添加docker部分的链接。这一切似乎都分别转移到了和插件
问题
最后,有没有一种方法可以将私有docker注册表添加到drone中,以及如何做到这一点?
是否有文件提供了如何操作的详细信息?
解决方案
确实有专门针对私有docker映像注册表的
图像拉秘密
为了下载私有映像,您需要提供一个docker
注册表配置文件,它将身份验证凭据嵌入到
登记处
示例.docker/config.json文件:
{
授权人:{
https://index.docker.io/v1/: {
认证:B2N0B2NHDDPJB3JYZWN0LWHVCNNLLWJHDHRLCNKTC3RHCG0XL
}
}
}
文件的内容应作为机密存储,其中
机密在yaml的image_pull_secrets部分中引用
种类:管道
名称:默认值
类型:docker
步骤:
-名称:build
图像:测试/测试图像
命令:
-建造
-去测试
图像\u拉\u秘密:
-dockerconfigjson
因此,我们要做的是执行docker登录,并将从~/.docker/config.json生成的凭证放入一个秘密中,在这个名为dockerconfigjson的示例中。Solution
确实有专门针对私有docker映像注册表的
图像拉秘密
为了下载私有映像,您需要提供一个docker
注册表配置文件,它将身份验证凭据嵌入到
登记处
示例.docker/config.json文件:
{
授权人:{
https://index.docker.io/v1/: {
认证:B2N0B2NHDDPJB3JYZWN0LWHVCNNLLWJHDHRLCNKTC3RHCG0XL
}
}
}
文件的内容应作为机密存储,其中
机密在yaml的image_pull_secrets部分中引用
种类:管道
名称:默认值
类型:docker
步骤:
-名称:build
图像:测试/测试图像
命令:
-建造
-去测试
图像\u拉\u秘密:
-dockerconfigjson
因此,我们要做的是执行docker登录,并将从~/.docker/config.json生成的凭证放入一个秘密中,在这个名为dockerconfigjson的示例中。下面是AWS ECR的完整工作流。 假定 您的aws CLI安装正常 您的drone CLI安装正常 为您的注册表获取令牌:aws ecr获取登录密码-区域 将令牌添加到无人机CI中的组织:无人机orgsecret添加我的拉动秘密 将以下内容添加到.drone.yml中: 图像\u拉\u秘密: -我的秘密
对于谷歌云来说,秘密不能是一个令牌,而是一个JSON文件。这里有一个完整的工作流程AWS ECR。 假定 您的aws CLI安装正常 您的drone CLI安装正常 为您的注册表获取令牌:aws ecr获取登录密码-区域 将令牌添加到无人机CI中的组织:无人机orgsecret添加我的拉动秘密 将以下内容添加到.drone.yml中: 图像\u拉\u秘密: -我的秘密 对于谷歌云,秘密不能是一个令牌,而是一个JSON文件。更新的文档链接:下一个文档链接更新:更新的文档链接:下一个文档链接更新: