gpt4 book ai didi

amazon-web-services - 无法运行 AWS CodeBuild 本地构建脚本

转载 作者:行者123 更新时间:2023-12-03 02:23:28 27 4
gpt4 key购买 nike

我正在尝试在本地为我的 golang 项目运行 CodeBuild。我已经拉取了 docker 镜像 amazon/aws-codebuild-local:latest并运行 CodeBuild 脚本 ./codebuild_build.sh -i aws/codebuild/standard:2.0 -s "/project/src" ,什么也没有发生。然后我捕获了脚本中生成的docker命令:docker run -it -v //var/run/docker.sock:/var/run/docker.sock -e "IMAGE_NAME=aws/codebuild/standard:2.0" -e "SOURCE=/project/src" -e "INITIATOR=me" amazon/aws-codebuild-local:latest .

当我运行 docker 命令时,出现以下错误:

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
Pulling build (aws/codebuild/standard:2.0)...
ERROR: The image for the service you're trying to recreate has been removed. If you continue, volume data could be lost. Consider backing up your data before continuing.

Continue with the new image? [yN]y
Pulling build (aws/codebuild/standard:2.0)...
ERROR: pull access denied for aws/codebuild/standard, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

我确定我的 docker 已登录,但不知道下一步应该做什么来解决问题。

最佳答案

使用 Ubuntu 18.04 本地构建平台和 docker image identfier/tag aws/codebuild/standard:3.0 运行一些 Python 单元测试的示例(见下文)举个例子。

1。制作 aws/codebuild/standard:3.0

的本地 docker 镜像

Ubuntu 18.04 平台是 identified作为 docker 中的 aws/codebuild/standard:3.0

# download definition of curated docker codebuild images
git clone https://github.com/aws/aws-codebuild-docker-images.git

# got ubuntu version of intrest
cd aws-codebuild-docker-images/ubuntu/standard/3.0/

# build the image (this will take a time as the final image is > 7GB)
docker build -t aws/codebuild/standard:3.0 .

2。下载codebuild_build.sh

wget https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh

chmod u+x codebuild_build.sh

3。运行本地构建作业

./codebuild_build.sh -i aws/codebuild/standard:3.0 -a /tmp/artifacts -s ./application/

其中 ./application/ 应更改为包含要构建的应用程序的文件夹。该文件夹应包含您的 buildspec.yml。我的示例 buildspec.yml 是:

version: 0.2

phases:
install:
runtime-versions:
python: 3.8
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Running my python unit tests on `date`
- python -m unittest test.py
post_build:
commands:
- echo Build completed on `date`

注意- python -m unittest test.py 因为我仅在构建阶段执行单元测试。 test.py 只是 Python 文档中的一个示例:https://docs.python.org/3/library/unittest.html#basic-example

./codebuild_build.sh 还将拉取 Docker 镜像 amazon/aws-codebuild-local第一次执行时。

4。示例输出:

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
agent_1 | 2020/01/05 07:50:34 [Customer Config] Couldn't open specified customer config file: open /root/.aws/config: no such file or directory
agent_1 | 2020/01/05 07:50:34 [Customer Config] Error parsing supplied customer config file: invalid argument
agent_1 | [Container] 2020/01/05 07:50:35 Waiting for agent ping
agent_1 | [Container] 2020/01/05 07:50:36 Waiting for DOWNLOAD_SOURCE
agent_1 | [Container] 2020/01/05 07:50:36 Phase is DOWNLOAD_SOURCE
agent_1 | [Container] 2020/01/05 07:50:36 CODEBUILD_SRC_DIR=/codebuild/output/src628986230/src
agent_1 | [Container] 2020/01/05 07:50:36 YAML location is /codebuild/output/srcDownload/src/buildspec.yml
agent_1 | [Container] 2020/01/05 07:50:36 No commands found for phase name: INSTALL
agent_1 | [Container] 2020/01/05 07:50:36 Processing environment variables
agent_1 | [Container] 2020/01/05 07:50:36 Moving to directory /codebuild/output/src628986230/src
agent_1 | [Container] 2020/01/05 07:50:36 Registering with agent
agent_1 | [Container] 2020/01/05 07:50:36 Phases found in YAML: 4
agent_1 | [Container] 2020/01/05 07:50:36 INSTALL: 0 commands
agent_1 | [Container] 2020/01/05 07:50:36 PRE_BUILD: 1 commands
agent_1 | [Container] 2020/01/05 07:50:36 BUILD: 2 commands
agent_1 | [Container] 2020/01/05 07:50:36 POST_BUILD: 1 commands
agent_1 | [Container] 2020/01/05 07:50:36 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED
agent_1 | [Container] 2020/01/05 07:50:36 Phase context status code: Message:
agent_1 | [Container] 2020/01/05 07:50:36 Entering phase INSTALL
agent_1 | [Container] 2020/01/05 07:50:36 Running command echo "Installing Python version 3.8 ..."
agent_1 | Installing Python version 3.8 ...
agent_1 |
agent_1 | [Container] 2020/01/05 07:50:36 Phase complete: INSTALL State: SUCCEEDED
agent_1 | [Container] 2020/01/05 07:50:36 Phase context status code: Message:
agent_1 | [Container] 2020/01/05 07:50:36 Entering phase PRE_BUILD
agent_1 | [Container] 2020/01/05 07:50:36 Running command echo Nothing to do in the pre_build phase...
agent_1 | Nothing to do in the pre_build phase...
agent_1 |
agent_1 | [Container] 2020/01/05 07:50:36 Phase complete: PRE_BUILD State: SUCCEEDED
agent_1 | [Container] 2020/01/05 07:50:36 Phase context status code: Message:
agent_1 | [Container] 2020/01/05 07:50:36 Entering phase BUILD
agent_1 | [Container] 2020/01/05 07:50:36 Running command echo Runing my python unittests on `date`
agent_1 | Runing my python unittests on Sun Jan 5 07:50:36 UTC 2020
agent_1 |
agent_1 | [Container] 2020/01/05 07:50:36 Running command python -m unittest test.py
agent_1 | ...
agent_1 | ----------------------------------------------------------------------
agent_1 | Ran 3 tests in 0.000s
agent_1 |
agent_1 | OK
agent_1 |
agent_1 | [Container] 2020/01/05 07:50:37 Phase complete: BUILD State: SUCCEEDED
agent_1 | [Container] 2020/01/05 07:50:37 Phase context status code: Message:
agent_1 | [Container] 2020/01/05 07:50:37 Entering phase POST_BUILD
agent_1 | [Container] 2020/01/05 07:50:37 Running command echo Build completed on `date`
agent_1 | Build completed on Sun Jan 5 07:50:37 UTC 2020
agent_1 |
agent_1 | [Container] 2020/01/05 07:50:37 Phase complete: POST_BUILD State: SUCCEEDED
agent_1 | [Container] 2020/01/05 07:50:37 Phase context status code: Message:
agent-resources_agent_1 exited with code 0
Stopping agent-resources_build_1 ... done
Aborting on container exit...

5。检查构建作业是否成功?

就我而言,我只是想知道 test.py 中的所有单元测试是否成功。为此,您只需检查 codebuild_build.sh

中的退出代码即可
echo ${?}

如果测试成功,则返回 0,如果失败,则返回 1。可以通过修改 test.py 以使单元测试失败并重新运行 codebuild_build.sh 来验证这一点。这是有效的,因为当所有测试通过时,python -m unittest test.py 退出时代码为 0,否则为 1

关于amazon-web-services - 无法运行 AWS CodeBuild 本地构建脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58576277/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com