

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ランタイム環境イメージの指定
<a name="build-images"></a>

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

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

**Topics**
+ [アクティブなイメージ](#build-curated-images)
+ [アクティブなイメージに必要なツールが含まれていない場合はどうなりますか？](#build-images-more-tools)
+ [カスタムランタイム環境の Docker イメージをアクションに割り当てる](#build-images-specify)
+ [例](#workflows-working-custom-image-ex)

## アクティブなイメージ
<a name="build-curated-images"></a>

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

アクションが 2024 年 3 月または 2022 年 11 月のイメージを使用するかどうかは、アクションによって異なります。
+ 2024 年 3 月 26 日以降にワークフローに追加されるビルドアクションとテストアクションには、[[2024 年 3 月のイメージ]](#build.default-image) を明示的に指定する `Container` セクションが YAML 定義に含まれます。オプションで `Container` セクションを削除して、[[2022 年 11 月のイメージ]](#build.previous-image) に戻せます。
+ 2024 年 3 月 26 日より前にワークフローに追加されたビルドアクションとテストアクションには、YAML 定義に `Container` セクションが*含まれない*ため、[[2022 年 11 月のイメージ]](#build.previous-image) が使用されます。2022 年 11 月のイメージを保持するか、アップグレードできます。イメージをアップグレードするには、ビジュアルエディタで アクションを開き、**[設定]** タブを選択し、**[Runtime 環境の docker イメージ]** ドロップダウンリストから 2024 年 3 月のイメージを選択します。この選択により、適切な 2024 年 3 月の画像が入力されているアクションの YAML 定義に `Container` セクションが追加されます。
+ 他のすべてのアクションでは、[[2022 年 11 月のイメージ]](#build.previous-image) または [[2024 年 3 月のイメージ]](#build.default-image) が使用されます。詳細については、アクションのドキュメントを参照してください。

**Topics**
+ [2024 年 3 月のイメージ](#build.default-image)
+ [2022 年 11 月のイメージ](#build.previous-image)

### 2024 年 3 月のイメージ
<a name="build.default-image"></a>

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

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


**2024 年 3 月のイメージツール**  

| ツール | Linux x86\$164 用 CodeCatalyst Amazon EC2 - `CodeCatalystLinux_x86_64:2024_03` | Linux x86\$164 用 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 月のイメージ
<a name="build.previous-image"></a>

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

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


**2022 年 11 月のイメージツール**  

| ツール | Linux x86\$164 用 CodeCatalyst Amazon EC2 - `CodeCatalystLinux_x86_64:2022_11` | Linux x86\$164 用 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\$164 用 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 | 

## アクティブなイメージに必要なツールが含まれていない場合はどうなりますか？
<a name="build-images-more-tools"></a>

CodeCatalyst が提供する [[アクティブなイメージ]](#build-curated-images) に、必要なツールが含まれていない場合は、いくつかのオプションがあります。
+ 必要なツールを含むカスタムランタイム環境の Docker イメージを提供できます。詳細については、「[カスタムランタイム環境の Docker イメージをアクションに割り当てる](#build-images-specify)」を参照してください。
**注記**  
 カスタムランタイム環境の 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](build-action-ref.md)」を参照してください。

## カスタムランタイム環境の Docker イメージをアクションに割り当てる
<a name="build-images-specify"></a>

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

カスタム Docker イメージを作成する方法については、Docker ドキュメントの「[アプリケーションのコンテナ化](https://docs.docker.com/get-started/02_our_app/)」を参照してください。

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

**注記**  
次のアクションは、カスタムランタイム環境の Docker イメージをサポートしていません: ** CloudFormation スタックのデプロイ**、**ECS へのデプロイ**、**GitHub Actions**。カスタムランタイム環境の Docker イメージは、**Lambda** コンピューティングタイプもサポートしていません。

------
#### [ Visual ]

**ビジュアルエディタを使用してカスタムランタイム環境の Docker イメージを割り当てるには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

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

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

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

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

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

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

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

   **ランタイム環境 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 ロール]](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) を作成する必要があります。(既存のロールを変更して、必要に応じてアクセス許可とポリシーを含めることができます。)

     IAM ロールのロールポリシーには、次のアクセス許可を含める必要があります。
     + `ecr:BatchCheckLayerAvailability`
     + `ecr:BatchGetImage`
     + `ecr:GetAuthorizationToken`
     + `ecr:GetDownloadUrlForLayer`

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

     IAM ロールの作成に関する詳細については、「*IAM ユーザーガイド*」の「[ロールの作成とポリシーのアタッチ (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)」を参照してください。

     ロールを作成したら、環境を介してアクションに割り当てる必要があります。詳細については、「[環境とアクションの関連付け](deploy-environments-add-app-to-environment.md)」を参照してください。

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

   次のいずれかを指定します。
   + `CODECATALYST` レジストリを使用している場合は、イメージを次のいずれかの [[アクティブなイメージ]](#build-curated-images) に設定します。
     + `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`
   + カスタムレジストリを使用している場合は、イメージをカスタムレジストリで期待される値に設定します。

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

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

------
#### [ YAML ]

**YAML エディタを使用してカスタムランタイム環境の Docker イメージを割り当てるには**

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

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

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

1. **[YAML]** を選択します。

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

1. アクションで、`Container` セクションと基盤となる `Registry` プロパティと `Image` プロパティを追加します。詳細については、「`Container`」、「`Registry`」、およびアクションの [アクション](workflow-reference.md#actions-reference) の `Image` プロパティの説明を参照してください。

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

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

------

## 例
<a name="workflows-working-custom-image-ex"></a>

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

**Topics**
+ [例: Amazon ECR でカスタムランタイム環境 Docker イメージを使用して Node.js 18 のサポートを追加する](#workflows-working-custom-image-ex-ecr-node18)
+ [例: カスタムランタイム環境の Docker イメージを使用して、Docker Hub で Node.js 18 のサポートを追加する](#workflows-working-custom-image-ex-docker-node18)

### 例: Amazon ECR でカスタムランタイム環境 Docker イメージを使用して Node.js 18 のサポートを追加する
<a name="workflows-working-custom-image-ex-ecr-node18"></a>

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

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

### 例: カスタムランタイム環境の Docker イメージを使用して、Docker Hub で Node.js 18 のサポートを追加する
<a name="workflows-working-custom-image-ex-docker-node18"></a>

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

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