bil*_*cyz 9 go amazon-web-services docker aws-codebuild
我正在尝试为我的 golang 项目在本地运行 CodeBuild。我已经拉取amazon/aws-codebuild-local:latest了 docker镜像并运行了 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
Run Code Online (Sandbox Code Playgroud)
我确定我的 docker 已登录,不知道下一步该怎么做才能解决问题。
Mar*_*cin 14
使用本地构建平台Ubuntu 18.04和 docker image identfier/tagaws/codebuild/standard:3.0运行几个 python 单元测试(见下文)的示例。
aws/codebuild/standard:3.0Ubuntu的18.04平台被认定为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 .
Run Code Online (Sandbox Code Playgroud)
codebuild_build.shwget https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh
chmod u+x codebuild_build.sh
Run Code Online (Sandbox Code Playgroud)
./codebuild_build.sh -i aws/codebuild/standard:3.0 -a /tmp/artifacts -s ./application/
Run Code Online (Sandbox Code Playgroud)
where./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`
Run Code Online (Sandbox Code Playgroud)
请注意- 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
。
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...
Run Code Online (Sandbox Code Playgroud)
就我而言,我只想知道所有单元测试test.py是否成功。为此,您只需检查退出代码codebuild_build.sh
echo ${?}
Run Code Online (Sandbox Code Playgroud)
0如果测试成功,则返回,否则返回1。可以通过修改test.py使单元测试失败并重新运行来验证这一点codebuild_build.sh。这是有效的,因为python -m unittest test.py退出0时所有测试通过的代码,1否则。
根据https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/,您必须git clone包含这些图像定义的 GitHub 存储库: https: //github.com/ aws/aws-codebuild-docker-images。aws/codebuild/standard 不是 DockerHub 存储库或有效的 ECR 存储库。
| 归档时间: |
|
| 查看次数: |
3523 次 |
| 最近记录: |