ランタイム環境の Docker イメージの操作 - Amazon CodeCatalyst

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

ランタイム環境の Docker イメージの操作

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

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

アクティブイメージ

アクティブイメージは、 CodeCatalyst プリインストールされたツールによって完全にサポートされているランタイム環境イメージです。現在、アクティブイメージは 2024 年 3 月にリリースされたものと 2022 年 11 月にリリースされたものの 2 セットです。

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

2024 年 3 月の画像

2024 年 3 月の画像は、から提供された最新の画像です。 CodeCatalystコンピュートタイプとフリートの組み合わせごとに 2024 年 3 月のイメージが 1 つあります。

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

2024 年 3 月のイメージツール
ツール CodeCatalyst Linux x86_64 用Amazon EC2-CodeCatalystLinux_x86_64:2024_03 CodeCatalyst リナックス x86_64 用Lambda-CodeCatalystLinuxLambda_x86_64:2024_03 CodeCatalyst Linux Arm64 用Amazon EC2-CodeCatalystLinux_Arm64:2024_03 CodeCatalyst リナックス Arm64 用Lambda-CodeCatalystLinuxLambda_Arm64:2024_03
AWS CLI 2.15.17 2.15.17 2.15.17 2.15.17
AWS コパイロット 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 正しい (17) 17 が修正されました 17 が修正されました 17 が修正されました
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 月の画像

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

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

2022 年 11 月のイメージツール
ツール CodeCatalyst Linux x86_64 用Amazon EC2-CodeCatalystLinux_x86_64:2022_11 CodeCatalyst リナックス x86_64 用Lambda-CodeCatalystLinuxLambda_x86_64:2022_11 CodeCatalyst Linux Arm64 用Amazon EC2-CodeCatalystLinux_Arm64:2022_11 CodeCatalyst リナックス Arm64 用Lambda-CodeCatalystLinuxLambda_Arm64:2022_11 CodeCatalyst Windows x86_64 用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 コパイロット 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 正しい (17) 17 が修正されました 17 が修正されました 17 が修正されました 17 が修正されました
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 必要なツールが含まれていない場合は、次の 2 つの選択肢があります。

  • 必要なツールを含むカスタムランタイム環境 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 イメージをアクションに割り当てる

が提供する Active イメージを使用したくない場合は CodeCatalyst、カスタムランタイム環境 Docker イメージを提供できます。カスタムイメージを提供する場合は、そのイメージに Git がインストールされていることを確認してください。イメージは Docker Hub、Amazon エラスティックコンテナレジストリ、または任意のパブリックリポジトリに配置できます。

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

以下の手順に従って、カスタムランタイム環境の Docker イメージをアクションに割り当てます。イメージを指定したら、 CodeCatalyst アクションの開始時にそれをコンピュートプラットフォームにデプロイします。

注記

次のアクションは、カスタムランタイム環境の Docker イメージをサポートしていません: AWS CloudFormation デプロイスタックECS へのデプロイGitHub アクション。カスタムランタイム環境の 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 エラスティックコンテナレジストリ (ビジュアルエディタ) または ECR (YAML エディタ)

      イメージは Amazon エラスティックコンテナレジストリのイメージリポジトリに保存されます。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 ユーザーガイド』の「カスタム信頼ポリシーを使用してロールを作成する (コンソール)」を参照してください。

      ロールを作成したら、環境を通じてアクションに割り当てる必要があります。詳細については、「環境、アカウント接続、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. [Commit] を選択し、コミットメッセージを入力して、もう一度 [Commit] を選択します。

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

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

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

  4. YAML を選択します。

  5. ランタイム環境の Docker イメージを割り当てたいアクションを探します。

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

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

  8. [Commit] を選択し、コミットメッセージを入力して、もう一度 [Commit] を選択します。

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

例:カスタムランタイム環境の Docker イメージを使用して Amazon ECR で 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