运行时找不到 Codebuild aws 命令?
Posted
技术标签:
【中文标题】运行时找不到 Codebuild aws 命令?【英文标题】:Codebuild aws command not found when ran? 【发布时间】:2017-04-25 15:15:52 【问题描述】:我正在尝试使用 AWS codebuild 构建一个简单的 docker 应用程序,但是我遇到了一个错误,即找不到 aws 命令:
[Container] 2016/12/10 04:29:17 Build started on Sat Dec 10 04:29:17 UTC 2016
[Container] 2016/12/10 04:29:17 Running command echo Building the Docker image...
[Container] 2016/12/10 04:29:17 Building the Docker image...
[Container] 2016/12/10 04:29:17 Running command docker build -t aws-test .
[Container] 2016/12/10 04:29:17 sh: 1: docker: not found
[Container] 2016/12/10 04:29:17 Command did not exit successfully docker build -t aws-test . exit status 127
[Container] 2016/12/10 04:29:17 Phase complete: BUILD Success: false
[Container] 2016/12/10 04:29:17 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: docker build -t aws-test .. Reason: exit status 127
我有一个超级简单的 docker 文件,它可以构建一个简单的 express 应用程序:
FROM node:6.2.0
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
# Bundle app source
COPY . /usr/src/app
EXPOSE 3000
CMD npm install && npm start
我有一个超级简单的 buildspec.yml 假设构建 docker 容器并将其推送到 aws 注册表:
version: 0.1
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- $(aws ecr get-login --region us-west-2)
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t <CONTAINER_NAME> .
- docker tag <CONTAINER_NAME>:latest <ID>.dkr.ecr.us-west-2.amazonaws.com/<CONTAINER_NAME>:latest
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker image...
- docker push <ID>.dkr.ecr.us-west-2.amazonaws.com/<CONTAINER_NAME>:latest
但是一旦运行,它就会抛出上面发布的错误 ^^ 我不确定为什么找不到 aws cli 实用程序?本指南在这里:
http://docs.aws.amazon.com/codebuild/latest/userguide/sample-docker.html
建议我不需要做任何事情来在任何地方设置 aws cli 实用程序?
我还注意到另一件事,我从 buildspec 文件中删除了 $(aws ecr get-login --region us-west-2) 步骤,再次构建它,然后它说找不到docker命令?!我是否在某个地方错过了一步(我想我没有)。
【问题讨论】:
您作为项目环境使用的图像是什么?您是否在使用其中一种 CodeBuild 托管环境? 非常感谢@ClareLiguori 我有点困惑,使用了错误的 env 容器。您可以创建一个答案,如果您愿意,我会接受? 【参考方案1】:原来我使用了错误的环境。这是我现在使用的:
我试图指定我自己的 docker 镜像,但最终没有使用任何 AWS cli 实用程序进行设置!
感谢 @Clare Liguori 提示我!
【讨论】:
此外,您现在必须指定运行时“Docker”,它位于该下拉菜单的滚动折叠下方。这在任何文档中都没有明确说明,并且很容易在首屏下方的非字母下拉列表中遗漏。 特权复选框必须打开以上是关于运行时找不到 Codebuild aws 命令?的主要内容,如果未能解决你的问题,请参考以下文章
aws codebuild dotnet:5.0 - 没有可用的 sdk 命令
AWS CodeBuild + CodePipeline:“找不到匹配的工件路径”
部署到 AWS lambda 时找不到模块 ./dist/server
AWS codeBuild 不运行 .ebextension 配置
Python cfn_tools 模块不会加载到在 AWS CodePipeline 中运行的 AWS CodeBuild 中