用于在无人机0.4上撰写服务的AWS ECR身份验证

时间:2017-01-18 20:07:36

标签: amazon-ecs drone drone.io

我使用Drone 0.4作为我的CI。在尝试从自托管私有注册表迁移到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来自ecr。据我所知,当您对AWS ECR进行身份验证时,您可以使用类似aws-cli&#39; ecr get-login的内容来为您提供临时密码。我知道我可以将其注入我的无人机秘密文件并在auth_config中使用该值,但这意味着我必须更新我的秘密&#39;每十二小时提交一次(或者令牌持续多久)。有无人机可以自行执行身份验证过程吗?

1 个答案:

答案 0 :(得分:0)

您可以在执行build / compose命令之前在同一个shell中运行authentication命令:

我们如何在使用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中推送它时,它使用从第一个命令获得的身份验证。