我使用无人机0.4作为我的线人。在尝试从自托管的私有注册表迁移到AWS的ECS/ECR时,当在我的.drone.yml中将这些图像作为组合服务引用时,我遇到了一个身份验证问题。
例如
build:
image: python:3.5
commands:
- some stuff
compose:
db:
image: <account_id>.dkr.ecr.us-east-1.amazonaws.com/reponame:latest当无人机构建运行时,它会出错,就像它应该做的那样,说Authentication required to pull from ecr。据我所知,当你认证AWS ECR时,你会使用类似aws-cli的ecr get-login,它会给你一个临时密码。我知道我可以将其注入到我的无人机秘密文件中,并在auth_config中使用该值,但这意味着我必须每隔12小时(或该令牌持续多长时间)更新我的秘密文件。有没有办法让drone自己执行身份验证过程?
发布于 2017-01-19 13:06:24
在执行build/compose命令之前,您可以在同一个shell中运行身份验证命令:
我们如何使用docker在我们的设置中做到这一点,我们将这个shell脚本部分放在了Jenkins管道中(这个shell脚本将在有或没有Jenkins的情况下工作,你所要做的就是配置你的aws凭证):
`aws ecr get-login --region us-east-1`
${MAVEN_HOME}/bin/mvn clean package docker:build -DskipTests
docker tag -f ${DOCKER_REGISTRY}/c-server ${DOCKER_REGISTRY}/c-server:${RELEASE_VERSION
docker push ${DOCKER_REGISTRY}/c-server:${RELEASE_VERSION}因此,在运行创建映像的maven命令或在ECR中推送映像的后续命令时,它将使用从第一个命令获得的身份验证。
https://stackoverflow.com/questions/41728531
复制相似问题