AWS CodeBuild のビルドプロジェクトでは、 ビルド環境に Docker コンテナを使用します。
ビルド環境の Docker コンテナ上では、 Docker コンテナをビルド(docker build
)することも可能です。
ビルド環境に使用する Docker コンテナのイメージは、AWS 提供のイメージもあります。
AWS 提供のイメージの中では、Ubuntu / Amazon Linux のスタンダードイメージを使うと、docker build
を実行できるようです。

公式ドキュメントにはこの情報は載っていませんが、CodeBuildのGitHubリポジトリにあるDockerfile
を確認しました。
- 公式ドキュメント
- CodeBuild の Github リポジトリ
- ここに 各イメージ用の
Dockerfile
があるので、そちらで確認しました。
- ここに 各イメージ用の
docker build
を実施可能なイメージ(2025/2/7 現在)
Ubuntu / Amazon Linux のスタンダードイメージを使うと、docker build
を実行できるようです。
- standard 5.0
- standard 6.0
- standard 7.0
- amazonlinux-x86_64-standard:4.0
- amazonlinux-x86_64-standard:5.0
- amazonlinux-x86_64-standard:corretto8
- amazonlinux-x86_64-standard:corretto11
- amazonlinux-aarch64-standard:2.0
- amazonlinux-aarch64-standard:3.0
詳細
Dockerfile が参照可能なため、Docker のバージョンなども確認できます。
例:
DOCKER_VERSION="27.3.1"
amazonlinux-x86_64-standard:5.0 から Docker をインストールしている箇所を引用します。
# Install Docker 27 ENV DOCKER_BUCKET="download.docker.com" \ DOCKER_CHANNEL="stable" \ DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ DOCKER_COMPOSE_VERSION="2.29.7" \ DOCKER_BUILDX_VERSION="0.17.1" ENV DOCKER_SHA256="9b4f6fe406e50f9085ee474c451e2bb5adb119a03591f467922d3b4e2ddf31d3" \ DOCKER_VERSION="27.3.1" VOLUME /var/lib/docker RUN set -ex \ && curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \ && echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \ && tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \ && rm docker.tgz \ && docker -v \ # Check runc version && runc -v \ # Set up subuid/subgid so that "--userns-remap=default" works out-of-the-box && groupadd dockremap \ && useradd -g dockremap dockremap \ && echo 'dockremap:165536:65536' >> /etc/subuid \ && echo 'dockremap:165536:65536' >> /etc/subgid \ && wget -q "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \ # Install docker compose as docker plugin and maintain docker-compose usage && mkdir -p /usr/local/lib/docker/cli-plugins \ && curl -L https://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose \ && chmod +x /usr/local/lib/docker/cli-plugins/docker-compose \ && ln -s /usr/local/lib/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose \ # Ensure docker-compose and docker compose work && docker-compose version \ && docker compose version \ # Add docker buildx tool && curl -L https://github.com/docker/buildx/releases/download/v${DOCKER_BUILDX_VERSION}/buildx-v${DOCKER_BUILDX_VERSION}.linux-amd64 -o /usr/local/lib/docker/cli-plugins/docker-buildx \ && chmod +x /usr/local/bin/dind /usr/local/lib/docker/cli-plugins/docker-buildx \ && ln -s /usr/local/lib/docker/cli-plugins/docker-buildx /usr/local/bin/docker-buildx \ # Ensure docker-buildx works && docker-buildx version \ && docker buildx version \ # Cleanup && rm -rf /tmp/* /var/tmp/*
docker build
を実施不可能なイメージ(2025/2/7 現在)
Lambda 用のイメージは全体的に docker build
をできないようでした。
- amazonlinux-x86_64-lambda-standard:corretto11
- amazonlinux-x86_64-lambda-standard:corretto17
- amazonlinux-x86_64-lambda-standard:corretto21
- amazonlinux-x86_64-lambda-standard:dotnet6
- amazonlinux-x86_64-lambda-standard:dotnet8
- amazonlinux-x86_64-lambda-standard:go1.21
- amazonlinux-x86_64-lambda-standard:nodejs18
- amazonlinux-x86_64-lambda-standard:nodejs20
- amazonlinux-x86_64-lambda-standard:python3.11
- amazonlinux-x86_64-lambda-standard:python3.12
- amazonlinux-x86_64-lambda-standard:ruby3.2
- amazonlinux-aarch64-lambda-standard:corretto11
- amazonlinux-aarch64-lambda-standard:corretto17
- amazonlinux-aarch64-lambda-standard:corretto21
- amazonlinux-aarch64-lambda-standard:dotnet6
- amazonlinux-aarch64-lambda-standard:dotnet8
- amazonlinux-aarch64-lambda-standard:go1.21
- amazonlinux-aarch64-lambda-standard:nodejs18
- amazonlinux-aarch64-lambda-standard:nodejs20
- amazonlinux-aarch64-lambda-standard:python3.11
- amazonlinux-aarch64-lambda-standard:python3.12
- amazonlinux-aarch64-lambda-standard:ruby3.2
まとめ
Ubuntu / Amazon Linux のスタンダードイメージを使うと、docker build を実行できるようです。
他
VPC モードで Docker イメージをビルドする場合は、「特権付与」を有効にしておくと良いでしょう。
非 VPC モードでは Docker デーモンがデフォルトで有効です。
デフォルトでは、Docker デーモンは非 VPC ビルドで有効になっています。
AWS CodeBuild でのビルドプロジェクトの設定の変更 - AWS CodeBuild
余談
休日に青梅の山をランニングしてきました。里山って良いですね。