ランタイム環境イメージの指定 - Amazon CodeCatalyst

ランタイム環境イメージの指定

[ランタイム環境イメージ] は、CodeCatalyst がワークフローアクションを実行する Docker コンテナです。Docker コンテナは、選択したコンピューティングプラットフォーム上で実行され、オペレーティングシステムと、ワークフローアクションに必要な AWS CLI、Node.js、.tar などの追加のツールが含まれています。

デフォルトでは、ワークフローアクションは CodeCatalyst によって提供および保守されている [アクティブなイメージ] のいずれかで実行されます。ビルドアクションとテストアクションのみがカスタムイメージをサポートします。詳細については、「カスタムランタイム環境の Docker イメージをアクションに割り当てる」を参照してください。

アクティブなイメージ

[アクティブなイメージ] は、CodeCatalyst によって完全にサポートされ、プリインストールされたツールを含むランタイム環境イメージです。現在、アクティブイメージには 2 つのセットがあります。1 つは 2024 年 3 月にリリースされ、もう 1 つは 2022 年 11 月にリリースされます。

アクションが 2024 年 3 月または 2022 年 11 月のイメージを使用するかどうかは、アクションによって異なります。

  • 2024 年 3 月 26 日以降にワークフローに追加されるビルドアクションとテストアクションには、[2024 年 3 月のイメージ] を明示的に指定する Container セクションが YAML 定義に含まれます。オプションで Container セクションを削除して、[2022 年 11 月のイメージ] に戻せます。

  • 2024 年 3 月 26 日より前にワークフローに追加されたビルドアクションとテストアクションには、YAML 定義に Container セクションが含まれないため、[2022 年 11 月のイメージ] が使用されます。2022 年 11 月のイメージを保持するか、アップグレードできます。イメージをアップグレードするには、ビジュアルエディタで アクションを開き、[設定] タブを選択し、[Runtime 環境の docker イメージ] ドロップダウンリストから 2024 年 3 月のイメージを選択します。この選択により、適切な 2024 年 3 月の画像が入力されているアクションの YAML 定義に Container セクションが追加されます。

  • 他のすべてのアクションでは、[2022 年 11 月のイメージ] または [2024 年 3 月のイメージ] が使用されます。詳細については、アクションのドキュメントを参照してください。

2024 年 3 月のイメージ

2024 年 3 月のイメージは、CodeCatalyst が提供する最新のイメージです。2024 年 3 月には、コンピューティングタイプとフリートの組み合わせごとに 1 つのイメージがあります。

次の表は、2024 年 3 月の各イメージにインストールされたツールを示しています。

2024 年 3 月のイメージツール
ツール Linux x86_64 用 CodeCatalyst Amazon EC2 - CodeCatalystLinux_x86_64:2024_03 Linux x86_64 用 CodeCatalyst Lambda - CodeCatalystLinuxLambda_x86_64:2024_03 Linux Arm64 用 CodeCatalyst Amazon EC2 - CodeCatalystLinux_Arm64:2024_03 Linux Arm64 用 CodeCatalyst Lambda - CodeCatalystLinuxLambda_Arm64:2024_03
AWS CLI 2.15.17 2.15.17 2.15.17 2.15.17
AWS Copilot CLI 1.32.1 1.32.1 1.32.1 1.32.1
Docker 24.0.9 該当なし 24.0.9 該当なし
Docker Compose 2.23.3 該当なし 2.23.3 該当なし
Git 2.43.0 2.43.0 2.43.0 2.43.0
Go 1.21.5 1.21.5 1.21.5 1.21.5
Gradle 8.5 8.5 8.5 8.5
Java Corretto17 Corretto17 Corretto17 Corretto17
Maven 3.9.6 3.9.6 3.9.6 3.9.6
Node.js 18.19.0 18.19.0 18.19.0 18.19.0
npm 10.2.3 10.2.3 10.2.3 10.2.3
Python 3.9.18 3.9.18 3.9.18 3.9.18
Python3 3.11.6 3.11.6 3.11.6 3.11.6
pip 22.3.1 22.3.1 22.3.1 22.3.1
.NET 8.0.100 8.0.100 8.0.100 8.0.100

2022 年 11 月のイメージ

2022 年 11 月には、コンピューティングタイプとフリートの組み合わせごとに 1 つのイメージがあります。[プロビジョニングされたフリート] を設定している場合、ビルドアクションで 2022 年 11 月の Windows イメージも使用できます。

次の表は、2022 年 11 月の各イメージにインストールされたツールを示しています。

2022 年 11 月のイメージツール
ツール Linux x86_64 用 CodeCatalyst Amazon EC2 - CodeCatalystLinux_x86_64:2022_11 Linux x86_64 用 CodeCatalyst Lambda - CodeCatalystLinuxLambda_x86_64:2022_11 Linux Arm64 用 CodeCatalyst Amazon EC2 - CodeCatalystLinux_Arm64:2022_11 Linux Arm64 用 CodeCatalyst Lambda - CodeCatalystLinuxLambda_Arm64:2022_11 Windows x86_64 用 CodeCatalyst Amazon EC2 - CodeCatalystWindows_x86_64:2022_11
AWS CLI 2.15.17 2.15.17 2.15.17 2.15.17 2.13.19
AWS Copilot CLI 0.6.0 0.6.0 該当なし 該当なし 1.30.1
Docker 23.01 該当なし 23.0.1 該当なし 該当なし
Docker Compose 2.16.0 該当なし 2.16.0 該当なし 該当なし
Git 2.40.0 2.40.0 2.39.2 2.39.2 2.42.0
Go 1.20.2 1.20.2 1.20.1 1.20.1 1.19
Gradle 8.0.2 8.0.2 8.0.1 8.0.1 8.3
Java Corretto17 Corretto17 Corretto17 Corretto17 Corretto17
Maven 3.9.4 3.9.4 3.9.0 3.9.0 3.9.4
Node.js 16.20.2 16.20.2 16.19.1 16.14.2 16.20.0
npm 8.19.4 8.19.4 8.19.3 8.5.0 8.19.4
Python 3.9.15 2.7.18 3.11.2 2.7.18 3.9.13
Python3 該当なし 3.9.15 該当なし 3.11.2 該当なし
pip 22.2.2 22.2.2 23.0.1 23.0.1 22.0.4
.NET 6.0.407 6.0.407 6.0.406 6.0.406 6.0.414

アクティブなイメージに必要なツールが含まれていない場合はどうなりますか?

CodeCatalyst が提供する [アクティブなイメージ] に、必要なツールが含まれていない場合は、いくつかのオプションがあります。

  • 必要なツールを含むカスタムランタイム環境の Docker イメージを提供できます。詳細については、「カスタムランタイム環境の Docker イメージをアクションに割り当てる」を参照してください。

    注記

    カスタムランタイム環境の Docker イメージを提供する場合は、カスタムイメージに Git がインストールされていることを確認してください。

  • ワークフローのビルドまたはテストアクションに必要なツールをインストールできます。

    例えば、ビルドアクションまたはテストアクションの YAML コードの Steps セクションに以下の手順を含めることができます。

    Configuration: Steps: - Run: ./setup-script

    [setup-script] 命令は、次のスクリプトを実行して Node パッケージマネージャー (npm) をインストールします。

    #!/usr/bin/env bash echo "Setting up environment" touch ~/.bashrc curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash source ~/.bashrc nvm install v16.1.0 source ~/.bashrc

    アクションの使用方法の詳細については、ビルドおよびテストアクション YAML を参照してください。

カスタムランタイム環境の Docker イメージをアクションに割り当てる

CodeCatalyst が提供する [アクティブイメージ] を使用しない場合は、カスタムランタイム環境の Docker イメージを指定できます。カスタムイメージを提供する場合は、そのイメージに Git がインストールされていることを確認してください。イメージは、Docker Hub、Amazon Elastic Container Registry、または任意のパブリックリポジトリに格納できます。

カスタム Docker イメージを作成する方法については、Docker ドキュメントの「アプリケーションのコンテナ化」を参照してください。

カスタムランタイム環境の Docker イメージをアクションに割り当てるには、次の手順に従います。イメージを指定すると、CodeCatalyst はアクションの開始時にそのイメージをコンピューティングプラットフォームにデプロイします。

注記

カスタムランタイム環境の「AWS CloudFormationスタックのデプロイ」、「ECS へのデプロイ」、「GitHub アクション」といった Docker イメージはサポートされません。カスタムランタイム環境の Docker イメージは、[Lambda] コンピューティングタイプもサポートしていません。

Visual
ビジュアルエディタを使用してカスタムランタイム環境の Docker イメージを割り当てるには
  1. https://codecatalyst.aws/ で CodeCatalyst コンソールを開きます。

  2. ナビゲーションペインで [CI/CD][ワークフロー] の順に選択します。

  3. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

  4. [編集] を選択します。

  5. [ビジュアル] を選択します。

  6. ワークフロー図で、カスタムランタイム環境の Docker イメージを使用するアクションを選択します。

  7. [設定] タブを選択します。

  8. 下部の近くで、次のフィールドに入力します。

    ランタイム環境 Docker イメージ - オプション

    イメージが保存されているレジストリを指定します。有効な値を次に示します。

    • CODECATALYST (YAML エディタ)

      イメージは CodeCatalyst レジストリに保存されます。

    • [Docker Hub] (ビジュアルエディタ) または [DockerHub] (YAML エディタ)

      イメージは Docker Hub イメージレジストリに保存されます。

    • [その他のレジストリ] (ビジュアルエディタ)) または Other (YAML エディタ)

      イメージはカスタムイメージレジストリに保存されます。公開されているレジストリを使用できます。

    • [Amazon Elastic Container Registry] (ビジュアルエディタ) または [ECR] (YAML エディタ)

      イメージは Amazon Elastic Container Registry イメージリポジトリに保存されます。Amazon ECR リポジトリでイメージを使用するには、このアクションで Amazon ECR にアクセスする必要があります。このアクセスを有効にするには、次のアクセス許可とカスタム信頼ポリシーを含む [IAM ロール] を作成する必要があります。(既存のロールを変更して、必要に応じてアクセス許可とポリシーを含めることができます。)

      IAM ロールのロールポリシーには、次のアクセス許可を含める必要があります。

      • ecr:BatchCheckLayerAvailability

      • ecr:BatchGetImage

      • ecr:GetAuthorizationToken

      • ecr:GetDownloadUrlForLayer

      IAM ロールには、次のカスタム信頼ポリシーを含める必要があります。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

      IAM ロールの作成に関する詳細については、「IAM ユーザーガイド」の「ロールの作成とポリシーのアタッチ (コンソール)」を参照してください。

      ロールを作成したら、 環境を介してアクションに割り当てる必要があります。詳細については、「環境とアクションの関連付け」を参照してください。

    [ECR イメージ URL][Docker Hub イメージ]、または [イメージ URL]

    次のいずれかを指定します。

    • CODECATALYST レジストリを使用している場合は、イメージを次のいずれかの [アクティブなイメージ] に設定します。

      • CodeCatalystLinux_x86_64:2024_03

      • CodeCatalystLinux_x86_64:2022_11

      • CodeCatalystLinux_Arm64:2024_03

      • CodeCatalystLinux_Arm64:2022_11

      • CodeCatalystLinuxLambda_x86_64:2024_03

      • CodeCatalystLinuxLambda_x86_64:2022_11

      • CodeCatalystLinuxLambda_Arm64:2024_03

      • CodeCatalystLinuxLambda_Arm64:2022_11

      • CodeCatalystWindows_x86_64:2022_11

    • Docker Hub レジストリを使用している場合は、イメージを Docker Hub イメージ名とオプションのタグに設定します。

      例: postgres:latest

    • Amazon ECR レジストリを使用している場合は、イメージを Amazon ECR レジストリ URI に設定します。

      例: 111122223333.dkr.ecr.us-west-2.amazonaws.com/codecatalyst-ecs-image-repo

    • カスタムレジストリを使用している場合は、イメージをカスタムレジストリで期待される値に設定します。

  9. (オプション) [検証] を選択して、コミットする前にワークフローの YAML コードを検証します。

  10. [コミット] を選択し、コミットメッセージを入力し、再度 [コミット] を選択します。

YAML
YAML エディタを使用してカスタムランタイム環境の Docker イメージを割り当てるには
  1. ナビゲーションペインで [CI/CD][ワークフロー] の順に選択します。

  2. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

  3. [編集] を選択します。

  4. [YAML] を選択します。

  5. ランタイム環境の Docker イメージを割り当てるアクションを見つけます。

  6. アクションで、Container セクションと基盤となる Registry プロパティと Image プロパティを追加します。詳細については、「Container」、「Registry」、およびアクションの アクションImage プロパティの説明を参照してください。

  7. (オプション) [検証] を選択して、コミットする前にワークフローの YAML コードを検証します。

  8. [コミット] を選択し、コミットメッセージを入力し、再度 [コミット] を選択します。

次の例は、カスタムランタイム環境の Docker イメージをワークフロー定義ファイルのアクションに割り当てる方法を示しています。

例: Amazon ECR でカスタムランタイム環境 Docker イメージを使用して Node.js 18 のサポートを追加する

次の例は、カスタムランタイム環境 Docker イメージを使用して [Amazon ECR] で Node.js 18 のサポートを追加する方法を示しています。

Configuration: Container: Registry: ECR Image: public.ecr.aws/amazonlinux/amazonlinux:2023

例: カスタムランタイム環境の Docker イメージを使用して、Docker Hub で Node.js 18 のサポートを追加する

次の例は、カスタムランタイム環境 Docker イメージを使用して [Docker Hub] で Node.js 18 のサポートを追加する方法を示しています。

Configuration: Container: Registry: DockerHub Image: node:18.18.2