ビルドイメージのカスタマイズ - AWS Amplify ホスティング

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

ビルドイメージのカスタマイズ

カスタムビルドイメージを使用すると、カスタマイズされた Amplify アプリのビルド環境を提供できます。Amplifyのデフォルトのコンテナを使用して、ビルド中に特定の依存関係をインストールするのに長い時間がかかる場合は、独自の Docker イメージを作成してビルド中に参照することができます。イメージは Docker Hub、またはパブリックの Amazon Elastic Container Registry Public でホストできます。

カスタムビルドイメージを Amplify ビルドイメージとして動作させるには、次の要件を満たしている必要があります。

カスタムビルドイメージの要件

  1. x86-64 アーキテクチャ用にコンパイルされた Amazon Linux などの GNU C ライブラリ (glibc) をサポートする Linux 配信。

  2. cURL: カスタムイメージを起動すると、ビルドランナーがコンテナにダウンロードされるため、cURL が必要です。この依存関係が欠落している場合は、build-runner で出力を生成できないため、ビルドは何も出力することなく即座に失敗します。

  3. Git: Git リポジトリのクローンを作成するには、Git をイメージにインストールする必要があります。この依存関係が欠落している場合、「リポジトリのクローンを作成する」ステップは失敗します。

  4. OpenSSH: リポジトリのクローンを安全に作成するには、OpenSSH を使用して、ビルド中に一時的に SSH キーを設定する必要があります。OpenSSH パッケージは、ビルドランナーがこれを行うために必要なコマンドを提供します。

  5. bash と Bourne シェル: これらの 2 つのユーティリティは、ビルド時にコマンドを実行するために使用されます。これらがインストールされていない場合、ビルドが開始する前に失敗する可能性があります。

  6. Node.JS+NPM: ビルドランナーは Node をインストールしません。代わりに、Node (ノード) と NPM がイメージにインストールされていることを前提としています。これは、NPM パッケージまたはノード固有のコマンドを必要とするビルドにのみ必要です。ただし、これらが存在している場合、Amplify ビルドランナーがこれらのツールを使用してビルドの実行を改善できるため、インストールすることを強くお勧めします。Amplify のパッケージオーバーライド機能は、Hugo 用にオーバーライドを設定する際に、NPM を使用して Hugo 拡張パッケージをインストールします。

次のパッケージは必須ではありませんが、インストールすることを強くお勧めします。

  1. NVM (Node Version Manager): Node の異なるバージョンを処理する必要がある場合は、このバージョンマネージャーをインストールすることをお勧めします。オーバーライドを設定すると、Amplify のパッケージオーバーライド機能は NVM を使用して、各ビルドの前に Node.js のバージョンを変更します。

  2. Wget: Amplify は、ビルドプロセス中に Wget ユーティリティを使用してファイルをダウンロードできます。カスタムイメージにインストールすることをお勧めします。

  3. Tar: Amplify は、ビルドプロセス中に Tar ユーティリティを使用して、ダウンロードされたファイルを解凍できます。カスタムイメージにインストールすることをお勧めします。

アプリのカスタムビルドイメージの設定

次の手順で、Amplify コンソールでアプリケーションのカスタムビルドイメージを設定します。

Amazon ECR でホストされているカスタムビルドイメージを設定するには
  1. Docker イメージを使用して Amazon ECR パブリックリポジトリをセットアップするには、Amazon ECR パブリックユーザーガイドの「はじめに」を参照してください。

  2. AWS Management Console にサインインし Amplify コンソール を開きます。

  3. カスタムビルドイメージを設定したいアプリを選択します。

  4. ナビゲーションペインで [ホスティング][ビルド設定] を選択します。

  5. ビルド設定」 ページの「ビルドイメージ設定」セクションで、「編集」を選択します。

  6. [ビルドイメージ設定の編集] のページで、[ビルドイメージ] メニューを展開し、[カスタムビルドイメージ] を選択します。

  7. ステップ 1で作成した Amazon ECR パブリックリポジトリの名前を入力します。ビルドイメージはここでホストされます。例えば、リポジトリの名前がecr-examplerepoの場合、public.ecr.aws/xxxxxxxx/ecr-examplerepoと入力します。

  8. [Save] を選択します。

ビルドイメージでの特定のパッケージバージョンと依存関係バージョンの使用

ライブパッケージのアップデートを使用すると、Amplify のデフォルトのビルドイメージで使用するパッケージと依存関係のバージョンを指定できます。デフォルトのビルドイメージには、いくつかのパッケージと依存関係がプリインストールされています (例: Hugo、Amplify CLI、Yarn)。ライブパッケージのアップデートを使用すると、これらの依存関係のバージョンを上書きして特定のバージョンを指定するか、常に最新バージョンがインストールされていることを確認できます。

ライブパッケージのアップデートが有効になっている場合は、ビルドが実行される前に、ビルドランナーは最初に指定された依存関係を更新 (またはダウングレード) します。これにより、依存関係の更新にかかる時間に比例してビルド時間が長くなりますが、同じバージョンの依存関係を使用してアプリをビルドできるというメリットがあります。

警告

Node.js バージョンを [最新] に設定すると、ビルドが失敗します。代わりに、1821.5v0.1.2 などの特定の Node.js バージョンを指定する必要があります。

ライブパッケージアップデートを設定するには
  1. AWS Management Console にサインインし Amplify コンソールを開きます。

  2. ライブパッケージアップデートを設定したいアプリを選択します。

  3. ナビゲーションペインで [ホスティング][ビルド設定] を選択します。

  4. ビルド設定」 ページの「ビルドイメージ設定」セクションで、「編集」を選択します。

  5. [ビルドイメージ設定の編集] ページの [ライブパッケージのアップデート] リストで、[新規追加] を選択します。

  6. [パッケージ] で、上書きする依存関係を選択します。

  7. Version には、デフォルトを最新のままにするか、依存関係の特定のバージョンを入力します。最新を使用すると、依存関係は利用可能なバージョンに常にアップグレードされます。

  8. [保存] を選択します。