CodeBuild の Docker イメージビルドサーバーのサンプル - AWS CodeBuild

CodeBuild の Docker イメージビルドサーバーのサンプル

次のサンプルは、Docker ビルドをマネージドイメージビルドサーバーにオフロードします。このサンプルを調整して、CodeBuild プロジェクト設定で専用のマネージド Docker イメージビルドサーバーをプロビジョニングできます。プロビジョニングされたインスタンスは、プロジェクトのビルドがアクティブに実行されている間はアクティブであり、ビルドが実行されていない間はインスタンスが停止することに注意してください。プロビジョニングされたインスタンスは、リサイクルされるまで最大 1 か月間保存されます。詳細については、「CodeBuild の Docker サーバーの機能」を参照してください。

重要

このサンプルを実行すると、AWS アカウントに課金される場合があります。これには、CodeBuild の料金、および Amazon S3、AWS、CloudWatch Logs に関連する AWS KMS リソースとアクションの料金が含まれます。詳細については、CodeBuild 料金表Amazon S3 料金表AWS Key Management Service 料金表、および Amazon CloudWatch 料金表を参照してください。

Docker サーバーを設定する

Docker ワークロードを管理し、Docker イメージレイヤーを保存する CodeBuild プロジェクト専用のコンピューティング環境をプロビジョニングするには、次の手順に従います。

Docker サーバーを設定するには
  1. このトピックの「ディレクトリ構造」セクションと「ファイル」セクションで説明しているファイルを作成し、これらのファイルを S3 入力バケットにアップロードするか、AWS CodeCommit、GitHub、Bitbucket のいずれかのリポジトリにアップロードします。

    重要

    (root directory name) をアップロードしないでください。アップロードするのは、(root directory name) 内のファイルのみです。

    S3 入力バケットを使用している場合は、ファイルを必ず ZIP ファイルに圧縮してから入力バケットにアップロードしてください。(root directory name) を ZIP ファイルに追加しないでください。追加するのは、(root directory name) 内のファイルのみです。

  2. ビルドプロジェクトを作成して、ビルドを実行し、関連するビルド情報を表示します。

    1. コンソールの [環境] セクションで、[その他の設定] を選択し、[Docker サーバー設定] に移動して、[このプロジェクトで Docker サーバーを有効にする] を選択します。その後、[Docker サーバーのコンピューティングタイプ] を選択し、[レジストリの認証情報] を指定できます。

    2. 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 で進入を許可する必要があります。

  3. ビルドの結果を表示するには、ビルドのログで文字列 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"