首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么codebuild.sh无法运行我的本地构建?

为什么codebuild.sh无法运行我的本地构建?
EN

Stack Overflow用户
提问于 2020-01-16 22:49:49
回答 2查看 272关注 0票数 1

我正在尝试在本地测试我的构建,而不需要一直上传我的代码。因此,我将codebuild.sh下载到我的ubuntu机器中,并放置到~/.local/bin/codebuild_build中。

然后,我通过以下方式使其可执行:

代码语言:javascript
复制
chmod +x ~/.local/bin/codebuild_build

并使用以下buildspec.yml

代码语言:javascript
复制
version: 0.2
phases:
  install:
    runtime-versions:
      docker: 18
  pre_build:
   commands:
     - docker login -u $USER -p $TOKEN
  build:
    commands:
     - docker build -f ./dockerfiles/7.0.8/Dockerfile -t myapp/php7.0.8:$(cat VERSION_PHP_708) -t myapp/php7.0.8:latest .
     - docker build -f ./dockerfiles/7.0.8/Dockerfile_develop -t myapp/php7.0.8-dev:$(cat VERSION_PHP_708) -t myapp/php7.0.8-dev:latest .
     - docker build -f ./dockerfiles/7.2/Dockerfile -t myapp/php7.0.8:$(cat VERSION_PHP_72) -t myapp/php7.0.8:latest .
     - docker build -f ./dockerfiles/7.2/Dockerfile_develop -t myapp/php7.0.8-dev:$(cat VERSION_PHP_708) -t myapp/php7.0.8-dev:latest .
  post_build:
    commands:
      - docker push etable/php7.2
      - docker push etable/php7.2-dev
      - docker push etable/php7.0.8
      - docker push etable/php7.0.8-dev

我试着这样执行我的命令:

代码语言:javascript
复制
codebuild_build -i amazon/aws-codebuild-local -a /tmp/artifacts/docker-php -e .codebuild -c ~/.aws

但我得到了以下输出:

代码语言:javascript
复制
Build Command:

docker run -it -v /var/run/docker.sock:/var/run/docker.sock -e "IMAGE_NAME=amazon/aws-codebuild-local" -e "ARTIFACTS=/tmp/artifacts/docker-php" -e "SOURCE=/home/pcmagas/Kwdikas/docker-php" -v "/home/pcmagas/Kwdikas/docker-php:/LocalBuild/envFile/" -e "ENV_VAR_FILE=.codebuild" -e "AWS_CONFIGURATION=/home/pcmagas/.aws" -e "INITIATOR=pcmagas" amazon/aws-codebuild-local:latest

Removing agent-resources_build_1 ... done
Removing agent-resources_agent_1 ... done
Removing network agent-resources_default
Removing volume agent-resources_source_volume
Removing volume agent-resources_user_volume
Creating network "agent-resources_default" with the default driver
Creating volume "agent-resources_source_volume" with local driver
Creating volume "agent-resources_user_volume" with local driver
Creating agent-resources_agent_1 ... done
Creating agent-resources_build_1 ... done
Attaching to agent-resources_agent_1, agent-resources_build_1
build_1  | 2020/01/16 14:43:58 Unable to initialize (*errors.errorString: AgentAuth was not specified)
agent-resources_build_1 exited with code 10
Stopping agent-resources_agent_1 ... done
Aborting on container exit...

我的~/.aws包含以下文件:

代码语言:javascript
复制
$ ls -l /home/pcmagas/.aws
σύνολο 8
-rw------- 1 pcmagas pcmagas  32 Αυγ   8 17:29 config
-rw------- 1 pcmagas pcmagas 116 Αυγ   8 17:34 credentials

而配置具有以下内容:

代码语言:javascript
复制
[default]
region = eu-central-1

~/.aws/credentials的格式如下:

代码语言:javascript
复制
[default]
aws_access_key_id = ^KEY_ID_CENSORED^
aws_secret_access_key = ^ACCESS_KEY_CENSORED^

另外,在.codebuild中,我还包含了所需的docker-login参数:

代码语言:javascript
复制
USER=^CENCORED^
TOKEN=^CENCORED^

因此,我可以获得docker-login所需的参数。

你知道为什么构建不能在本地运行吗?

EN

回答 2

Stack Overflow用户

发布于 2020-01-16 23:27:30

您的预构建步骤包含一个命令,可让您登录到docker

代码语言:javascript
复制
docker login -u $USER -p $TOKEN

确保已在本地文件环境文件中包含docker登录凭据。

票数 0
EN

Stack Overflow用户

发布于 2020-01-17 20:50:13

更改'.codebuild‘文件中的环境变量名称,例如:

代码语言:javascript
复制
DOCKER_USER=^CENCORED^
DOCKER_TOKEN=^CENCORED^

看起来CodeBuild代理正在解释“TOKEN”环境变量本身。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59772173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档