CodeBuild の Docker イメージビルドサーバーのサンプル
次のサンプルは、Docker ビルドをマネージドイメージビルドサーバーにオフロードします。このサンプルを調整して、CodeBuild プロジェクト設定で専用のマネージド Docker イメージビルドサーバーをプロビジョニングできます。プロビジョニングされたインスタンスは、プロジェクトのビルドがアクティブに実行されている間はアクティブであり、ビルドが実行されていない間はインスタンスが停止することに注意してください。プロビジョニングされたインスタンスは、リサイクルされるまで最大 1 か月間保存されます。詳細については、「CodeBuild の Docker サーバーの機能
重要
このサンプルを実行すると、AWS アカウントに課金される場合があります。これには、CodeBuild の料金、および Amazon S3、AWS、CloudWatch Logs に関連する AWS KMS リソースとアクションの料金が含まれます。詳細については、CodeBuild 料金表
トピック
Docker サーバーを設定する
Docker ワークロードを管理し、Docker イメージレイヤーを保存する CodeBuild プロジェクト専用のコンピューティング環境をプロビジョニングするには、次の手順に従います。
Docker サーバーを設定するには
-
このトピックの「ディレクトリ構造」セクションと「ファイル」セクションで説明しているファイルを作成し、これらのファイルを S3 入力バケットにアップロードするか、AWS CodeCommit、GitHub、Bitbucket のいずれかのリポジトリにアップロードします。
重要
をアップロードしないでください。アップロードするのは、(root directory name)内のファイルのみです。(root directory name)S3 入力バケットを使用している場合は、ファイルを必ず ZIP ファイルに圧縮してから入力バケットにアップロードしてください。
を ZIP ファイルに追加しないでください。追加するのは、(root directory name)内のファイルのみです。(root directory name) -
ビルドプロジェクトを作成して、ビルドを実行し、関連するビルド情報を表示します。
-
コンソールの [環境] セクションで、[その他の設定] を選択し、[Docker サーバー設定] に移動して、[このプロジェクトで Docker サーバーを有効にする] を選択します。その後、[Docker サーバーのコンピューティングタイプ] を選択し、[レジストリの認証情報] を指定できます。
-
AWS CLI を使用してビルドプロジェクトを作成する場合、
create-projectコマンドへの JSON 形式の入力は次のようになります。(プレースホルダは独自の値に置き換えてください。){ "name": "sample-docker-custom-image-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/DockerServerSample.zip" }, "artifacts": { "type": "NO_ARTIFACTS" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/amazonlinux-x86_64-standard:5.0", "computeType": "BUILD_GENERAL1_LARGE", "dockerServer": [ { "computeType": "BUILD_GENERAL1_LARGE", "securityGroupIds": [ "security-groups-ID" ] } ] }, "serviceRole": "arn:aws:iam::account-ID:role/role-name" }注記
Docker サーバー用に設定されたセキュリティグループは、プロジェクトで設定された VPC からの進入ネットワークトラフィックを許可する必要があります。ポート 9876 で進入を許可する必要があります。
-
-
ビルドの結果を表示するには、ビルドのログで文字列
Hello, World!を探します。詳細については、「ビルドの詳細の表示」を参照してください。
ディレクトリ構造
このサンプルのディレクトリ構造は次のとおりとします。
(root directory name)
├── buildspec.yml
└── Dockerfile
ファイル
このサンプルで使用されているオペレーティングシステムの基本イメージは Ubuntu です。このサンプルで使用するファイルは以下のとおりです。
buildspec.yml ( 内)(root directory
name)
version: 0.2 phases: build: commands: - docker buildx build . - docker run helloworld echo "Hello, World!"
Dockerfile ( 内)(root directory
name)
FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN echo "Hello World"