【发布时间】:2017-11-06 21:17:51
【问题描述】:
我正在尝试设置 Bitbucket 管道以部署到 ECS,如下所示:https://confluence.atlassian.com/bitbucket/deploy-to-amazon-ecs-892623902.html
这些说明说明了如何推送到 Docker 中心,但我想将映像推送到亚马逊的映像存储库。我在我的 Bitbucket 参数列表中设置了 AWS_SECRET_ACCESS_KEY 和 AWS_ACCESS_KEY_ID,我可以毫无问题地在本地运行这些命令(在 ~/.aws/credentials 中定义的密钥)。但是,我不断收到错误“没有基本的身份验证凭据”。我想知道它是否以某种方式无法识别变量。这里的文档:http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html 说:
AWS CLI 使用提供程序链在多个不同位置查找 AWS 凭证,包括系统或用户环境变量和本地 AWS 配置文件。所以我不确定为什么它不起作用。我的 bitbucket 管道配置是这样的(我没有包含任何不必要的内容):
- export IMAGE_NAME=$AWS_REPO_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/my/repo-name:$BITBUCKET_COMMIT
# build the Docker image (this will use the Dockerfile in the root of the repo)
- docker build -t $IMAGE_NAME .
# authenticate with the AWS repo (this gets and runs the docker login command)
- eval $(aws ecr get-login --region $AWS_DEFAULT_REGION)
# push the new Docker image to the repo
- docker push $IMAGE_NAME
有没有办法指定 aws ecr get-login 使用的凭据?我什至试过这个,但它不起作用:
- mkdir -p ~/.aws
- echo -e "[default]\n" > ~/.aws/credentials
- echo -e "aws_access_key_id = $AWS_ACCESS_KEY_ID\n" >> ~/.aws/credentials
- echo -e "aws_secret_access_key = $AWS_SECRET_ACCESS_KEY\n" >> ~/.aws/credentials
谢谢
【问题讨论】:
-
这个命令单独返回什么?
aws ecr get-login --region $AWS_DEFAULT_REGION -
@Robert
aws ecr get-login --region $AWS_DEFAULT_REGION-> 用法:aws [options][parameters] aws: error: argument command:无效选择,有效选择是: -
啊翻转我看到发生了什么,它使用的是来自 apt-get 的旧版本的 aws cli(没有 ecr,我在 mac 上也遇到了这个问题)。我需要不使用 apt-get 安装!谢谢@罗伯特!!
-
永远欢迎!
标签: amazon-web-services docker amazon-ecs