AWS CodeBuild で Build 環境として使える docker イメージの中を見たかった


CodeBuild の途中でこけるのでデバッグしようとしたのですがデバッグのたびにビルドさせるのは面倒でお金もかかっちゃうので、ローカルで様子を見ようと思いました

結論

github にあがってる aws の Dockerfile から build した

Pull (失敗)

pull しようとすると

$ docker pull aws/codebuild/docker:17.09.0
Error response from daemon: pull access denied for aws/codebuild/docker, repository does not exist or may require 'docker login'
$

search しても確かに見つからない。

docker 力が足りないだけなのかもしれない。

aws ecr get-login して「あれ〜?」とか呑気に言ってたけど、自分で push したわけじゃないので少なくとも ecr を試すのは無駄だと判断。

Build

探すより Build したほうが早そうなので自分で build することにした

$ git clone [email protected]:aws/aws-codebuild-docker-images.git
Cloning into 'aws-codebuild-docker-images'...
remote: Counting objects: 525, done.
remote: Total 525 (delta 0), reused 0 (delta 0), pack-reused 525
Receiving objects: 100% (525/525), 95.94 KiB | 606.00 KiB/s, done.
Resolving deltas: 100% (208/208), done.
$ cd aws-codebuild-docker-images/
$ docker build -t aws-codebuild-docker ./ubuntu/docker/17.09.0/
Sending build context to Docker daemon  7.168kB
Step 1/8 : FROM ubuntu:14.04.5
14.04.5: Pulling from library/ubuntu

(中略)

Successfully built PyYAML
Installing collected packages: docutils, jmespath, six, python-dateutil, botocore, pyasn1, rsa, futures, s3transfer, PyYAML, colorama, awscli
Successfully installed PyYAML-3.12 awscli-1.15.6 botocore-1.10.6 colorama-0.3.7 docutils-0.14 futures-3.2.0 jmespath-0.9.3 pyasn1-0.4.2 python-dateutil-2.7.2 rsa-3.4.2 s3transfer-0.1.13 six-1.11.0
Removing intermediate container 29be58076bf4
 ---> bf97099e2f8d
Step 6/8 : VOLUME /var/lib/docker
 ---> Running in 6ccefd8ee279
Removing intermediate container 6ccefd8ee279
 ---> 497e0d5e5fd8
Step 7/8 : COPY dockerd-entrypoint.sh /usr/local/bin/
 ---> 08563d553802
Step 8/8 : ENTRYPOINT ["dockerd-entrypoint.sh"]
 ---> Running in a42256c82653
Removing intermediate container a42256c82653
 ---> 317742568182
Successfully built 317742568182
Successfully tagged aws-codebuild-docker:latest
$

build にかかったのは 10分くらい。序盤の apt-get が長かったように思います。

$ docker images | grep codebuild
aws-codebuild-docker                                      latest              317742568182        About a minute ago   850MB
$