我正在学习使用 CodeBuild 将构建推送到 ECR 的代码管道。下面是我的 buildspec.yml 文件和 Codebuild 日志中的错误。谁能阐明我做错了什么?提前致谢。
构建规范.yml
版本:0.2
阶段:
预构建:
commands:
- echo Logging in to Amazon ECR.....
- aws --version
- $(aws ecr get-login --no-include-email --region us-east-1)
- REPOSITORY_URI=989066xxxxxx.dkr.ecr.us-east-1.amazonaws.com/ecs-cicd-nginx
- IMAGE_TAG=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
建造:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t $REPOSITORY_URI:$IMAGE_TAG .
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker images...
- docker push $REPOSITORY_URI:$IMAGE_TAG
- echo Writing image definitions file...
- printf '[{"name":"ecs-cicd-nginx","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
工件:文件:imagedefinitions.json
错误日志: [容器] 2021/07/13 11:13:22 运行命令 aws --version aws-cli/2.1.38 Python/3.8.8 Linux/4.14.225-121.362.amzn1.x86_64 exec-env/AWS_ECS_EC2 exe/x86_64.ubuntu.20 提示/关闭
[容器] 2021/07/13 11:13:26 运行命令 $(aws ecr get-login --no-include-email --region us-east-1)
用法:aws [options] [ ...] [parameters] 要查看帮助文本,您可以运行:
aws 帮助 aws 帮助 aws 帮助
aws:错误:参数操作:无效的选择,有效的选择是:
批量检查层可用性 | 批量删除图像
批量获取图像 | 完成层上传
创建存储库 | 删除生命周期策略
删除注册表策略 | 删除存储库
删除存储库策略 | 描述图像扫描结果
描述图像 | 描述注册表
描述存储库| get-authorization-token
get-download-url-for-layer | 获取生命周期策略
获取生命周期策略预览 | 获取注册表策略
获取存储库策略 | 启动层上传
列表图像 | 资源标签列表
放图像 | put-image-scanning-configuration
put-image-tag-mutability | put-lifecycle-policy
put-registry-policy | put-replication-configuration
设置存储库策略 | 开始图像扫描
开始生命周期策略预览 | 标签资源
untag-resource | 上传层部分
获取登录密码 | 等待
帮助
[容器] 2021/07/13 11:13:26 命令未成功退出 $(aws ecr get-login --no-include-email --region us-east-1) 退出状态 252 [容器] 2021/07 /13 11:13:26 阶段完成:PRE_BUILD 状态:失败 [容器] 2021/07/13 11:13:26 阶段上下文状态代码:COMMAND_EXECUTION_ERROR 消息:执行命令时出错:$(aws ecr get-login --no -include-email --region us-east-1)。原因:退出状态252