

AWS App Runner は新規顧客に公開されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[AWS App Runner  可用性の変更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)」を参照してください。

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

# ソースコードに基づく App Runner サービス
<a name="service-source-code"></a>

を使用して AWS App Runner 、ソース*コードとソース**イメージ*の 2 つの異なるタイプのサービスソースに基づいてサービスを作成および管理できます。ソースタイプに関係なく、App Runner はサービスの起動、実行、スケーリング、ロードバランシングを処理します。App Runner の CI/CD 機能を使用して、ソースイメージまたはコードの変更を追跡できます。App Runner は変更を検出すると、自動的に (ソースコード用) をビルドし、新しいバージョンを App Runner サービスにデプロイします。

この章では、ソースコードに基づく のサービスについて説明します。ソースイメージに基づくサービスの詳細については、「」を参照してください[ソースイメージに基づく App Runner サービス](service-source-image.md)。

ソースコードは、App Runner が構築およびデプロイするアプリケーションコードです。App Runner をコードリポジトリの[ソースディレクトリ](#service-source-code.source-directory)にポイントし、プログラミングプラットフォームのバージョンに対応する適切な*ランタイム*を選択します。App Runner は、ランタイムのベースイメージとアプリケーションコードに基づいてイメージを構築します。次に、このイメージに基づいてコンテナを実行するサービスを開始します。

 App Runner は、プラットフォーム固有の便利な*マネージドランタイムを提供します*。これらのランタイムはそれぞれ、ソースコードからコンテナイメージを構築し、言語ランタイムの依存関係をイメージに追加します。Dockerfile などのコンテナ設定やビルド手順を指定する必要はありません。

この章のサブトピックでは、App Runner がサポートするさまざまなプラットフォームについて説明します。これは、さまざまなプログラミング環境とバージョンにマネージドランタイムを提供する*マネージドプラットフォーム*です。

**Topics**
+ [ソースコードリポジトリプロバイダー](#service-source-code.providers)
+ [ソースディレクトリ](#service-source-code.source-directory)
+ [App Runner マネージドプラットフォーム](#service-source-code.managed-platforms)
+ [マネージドランタイムバージョンのサポート終了](#service-source-code.managed-platforms.eos)
+ [マネージドランタイムバージョンと App Runner ビルド](#service-source-code.build-detail)
+ [Python プラットフォームを使用する](service-source-code-python.md)
+ [Node.js プラットフォームを使用する](service-source-code-nodejs.md)
+ [Java プラットフォームの使用](service-source-code-java.md)
+ [.NET プラットフォームを使用する](service-source-code-net6.md)
+ [PHP プラットフォームを使用する](service-source-code-php.md)
+ [Ruby プラットフォームを使用する](service-source-code-ruby.md)
+ [Go プラットフォームを使用する](service-source-code-go1.md)

## ソースコードリポジトリプロバイダー
<a name="service-source-code.providers"></a>

App Runner は、ソースコードリポジトリから読み取ってソースコードをデプロイします。App Runner は[GitHub](https://github.com/) と [Bitbucket](https://bitbucket.org/) の 2 つのソースコードリポジトリプロバイダーをサポートしています。

### ソースコードリポジトリプロバイダーからのデプロイ
<a name="service-source-code.providers.github"></a>

ソースコードリポジトリから App Runner サービスにソースコードをデプロイするために、App Runner はそれへの接続を確立します。App Runner コンソールを使用して[サービスを作成する](manage-create.md)ときは、App Runner がソースコードをデプロイするための接続の詳細とソースディレクトリを指定します。

**Connections**  
サービス作成手順の一部として接続の詳細を指定します。App Runner API または を使用する場合 AWS CLI、接続は別のリソースです。まず、[CreateConnection](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateConnection.html) API アクションを使用して接続を作成します。次に、[CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) API アクションを使用して、サービスの作成時に接続の ARN を指定します。

**ソースディレクトリ**  
サービスを作成するときは、ソースディレクトリも指定します。デフォルトでは、App Runner はリポジトリのルートディレクトリをソースディレクトリとして使用します。ソースディレクトリは、アプリケーションのソースコードと設定ファイルを保存するソースコードリポジトリ内の場所です。ビルドコマンドとスタートコマンドは、ソースディレクトリからも実行されます。App Runner API または を使用してサービス AWS CLI を作成または更新する場合は、[CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) および [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html) API アクションでソースディレクトリを指定します。詳細については、次の「[ソースディレクトリ](#service-source-code.source-directory)」セクションを参照してください。

App Runner サービスの作成の詳細については、「」を参照してください[App Runner サービスの作成](manage-create.md)。App Runner 接続の詳細については、「」を参照してください[App Runner 接続の管理](manage-connections.md)。

## ソースディレクトリ
<a name="service-source-code.source-directory"></a>

App Runner サービスを作成するときは、リポジトリとブランチとともにソースディレクトリを指定できます。Source **ディレクトリ**フィールドの値を、アプリケーションのソースコードと設定ファイルを保存するリポジトリディレクトリパスに設定します。App Runner は、指定したソースディレクトリパスからビルドコマンドとスタートコマンドを実行します。

ルートリポジトリディレクトリからソースディレクトリパスの値を絶対として入力します。値を指定しない場合、デフォルトでリポジトリの最上位ディレクトリになります。これはリポジトリルートディレクトリとも呼ばれます。

また、最上位リポジトリディレクトリの他に異なるソースディレクトリパスを指定することもできます。これにより、モノレポリポジトリアーキテクチャがサポートされます。つまり、複数のアプリケーションのソースコードは 1 つのリポジトリに保存されます。単一のモノレポから複数の App Runner サービスを作成してサポートするには、各サービスを作成するときに異なるソースディレクトリを指定します。

**注記**  
複数の App Runner サービスに同じソースディレクトリを指定すると、両方のサービスが個別にデプロイおよび動作します。

`apprunner.yaml` 設定ファイルを使用してサービスパラメータを定義する場合は、リポジトリのソースディレクトリフォルダに配置します。

**デプロイトリガー**オプションが**自動**に設定されている場合、ソースディレクトリでコミットした変更は自動デプロイをトリガーします。*ソースディレクトリパスの変更のみが*自動デプロイをトリガーします。ソースディレクトリの場所が自動デプロイの範囲にどのように影響するかを理解することが重要です。詳細については、「」の*「自動デプロイ*」を参照してください[デプロイ方法](manage-deploy.md#manage-deploy.methods)。

**注記**  
App Runner サービスが PHP マネージドランタイムを使用していて、デフォルトのルートリポジトリ以外のソースディレクトリを指定する場合は、正しい PHP ランタイムバージョンを使用することが重要です。詳細については、「[PHP プラットフォームを使用する](service-source-code-php.md)」を参照してください。

## App Runner マネージドプラットフォーム
<a name="service-source-code.managed-platforms"></a>

App Runner マネージドプラットフォームは、さまざまなプログラミング環境にマネージドランタイムを提供します。各マネージドランタイムを使用すると、プログラミング言語またはランタイム環境のバージョンに基づいてコンテナを簡単に構築して実行できます。マネージドランタイムを使用すると、App Runner はマネージドランタイムイメージで始まります。このイメージは [Amazon Linux Docker イメージ](https://hub.docker.com/_/amazonlinux)に基づいており、言語ランタイムパッケージ、いくつかのツール、一般的な依存関係パッケージが含まれています。App Runner はこのマネージドランタイムイメージをベースイメージとして使用し、アプリケーションコードを追加して Docker イメージを構築します。次に、このイメージをデプロイして、コンテナでウェブサービスを実行します。

 App Runner コンソールまたは [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) API オペレーションを使用してサービス[を作成する](manage-create.md)ときに、App Runner サービスのランタイムを指定します。ソースコードの一部としてランタイムを指定することもできます。コードリポジトリに含める [App Runner 設定ファイル](config-file.md)で `runtime`キーワードを使用します。マネージドランタイムの命名規則は {{<language-name><major-version>}} です。

App Runner は、デプロイまたはサービスの更新ごとに、サービスのランタイムを最新バージョンに更新します。アプリケーションで特定のバージョンのマネージドランタイムが必要な場合は、[App Runner 設定ファイルの](config-file.md) `runtime-version`キーワードを使用して指定できます。メジャーバージョンやマイナーバージョンなど、任意のレベルのバージョンにロックできます。App Runner は、サービスのランタイムに対してのみ低レベルの更新を行います。

## マネージドランタイムバージョンのサポート終了
<a name="service-source-code.managed-platforms.eos"></a>

マネージド言語ランタイムの公式プロバイダーまたはコミュニティがバージョンをサポート終了 (EOL) と公式に宣言すると、App Runner はその後、バージョンステータスを*サポート終了*と宣言します。サポート終了に達したマネージド言語ランタイムバージョンでサービスが実行されている場合、以下のポリシーと推奨事項が適用されます。

**言語ランタイムバージョンのサポート終了:**
+ **既存のサービスは**、サポート終了に達したランタイムを使用しても、引き続きトラフィックを実行し、処理します。ただし、更新、セキュリティパッチ、またはテクニカルサポートを受け取らなくなったサポートされていないランタイムで実行されます。
+ サポート終了ランタイムを使用する**既存のサービスの更新**は引き続き許可されますが、サービスのサポート終了ランタイムを引き続き使用することはお勧めしません。
+ サポート終了日に達したランタイムを使用して**新しいサービス**を作成することはできません。

**サポート終了ステータスの言語ランタイムバージョンに必要なアクション:**
+ サービスが**ソースイメージに基づいて**いる場合、そのサービスのユーザー側でそれ以上のアクションは必要ありません。
+ サービスが**ソースコードに基づいて**いる場合は、サポートされているランタイムバージョンを使用するようにサービス設定を更新します。これを行うには、[App Runner コンソール](https://console.aws.amazon.com/apprunner)でサポートされているランタイムバージョンを選択するか、[apprunner.yaml](config-file.md) 設定ファイルの `runtime`フィールドを更新するか、[CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)/[UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html) API オペレーションまたは IaC ツールを使用して `runtime`パラメータを設定します。サポートされているランタイムのリストについては、この章の「特定のランタイムの*リリース情報*」ページを参照してください。
+ または、App Runner の**コンテナイメージソース**オプションに切り替えることもできます。詳細については、[イメージベースのサービス](service-source-image.md)を参照してください。

**注記**  
Node.js 12、14、または 16 から **Node.js 22**、または Python 3.7 または 3.8 から **Python 3.11** に移行する場合は、Node.js 22 および Python 3.11 は、より高速で効率的なビルドを提供する改訂された App Runner ビルドプロセスを使用することに注意してください。アップグレード前に互換性を確保するために、次のセクションの[ビルドプロセスガイダンス](#service-source-code.build-detail)を確認することをお勧めします。

次の表に、サポート終了日が指定されている App Runner マネージドランタイムバージョンを示します。


| **ランタイムバージョン** | **App Runner サポート終了日** | 
| --- | --- | 
| Python 3.8 [でサポートされているランタイム](service-source-code-python-releases.md) | 2025 年 12 月 1 日 | 
| Python 3.7 [でサポートされているランタイム](service-source-code-python-releases.md) | 2025 年 12 月 1 日 | 
| Node.js 18 [でサポートされているランタイム](service-source-code-nodejs-releases.md) | 2025 年 12 月 1 日 | 
| Node.js 16 [でサポートされているランタイム](service-source-code-nodejs-releases.md) | 2025 年 12 月 1 日 | 
| Node.js 14 [でサポートされているランタイム](service-source-code-nodejs-releases.md) | 2025 年 12 月 1 日 | 
| Node.js 12 [でサポートされているランタイム](service-source-code-nodejs-releases.md) | 2025 年 12 月 1 日 | 
| .NET 6 \* | 2025 年 12 月 1 日 | 
| PHP 8.1 \* | 2025 年 12 月 31 日 | 
| Ruby 3.1 \* | 2025 年 12 月 1 日 | 
| Go 1 \* | 2025 年 12 月 1 日 | 

**\*** App Runner は、アスタリスク (\*) が付いたランタイムの新しい言語バージョンをリリースしません。これらのランタイムは、.NET、PHP、Ruby、Go です。これらのランタイム用にコードベースのサービスが設定されている場合は、次のいずれかのアクションをお勧めします。
+ 該当する場合は、サービス設定をサポートされている別のマネージドランタイムに切り替えます。
+ または、任意のランタイムバージョンでカスタムコンテナイメージを構築し、App Runner [イメージベースのサービス](service-source-image.md)のオプションを使用してデプロイします。Amazon ECR でイメージをホストできます。

## マネージドランタイムバージョンと App Runner ビルド
<a name="service-source-code.build-detail"></a>

App Runner は、最新のメジャーバージョンランタイムで実行されるアプリケーション用に更新されたビルドプロセスを提供します。この改訂されたビルドプロセスは、より迅速で効率的です。また、アプリケーションの実行に必要なソースコード、ビルドアーティファクト、ランタイムのみを含む、フットプリントが小さい最終イメージを作成します。

新しいビルドプロセスを*改訂された App Runner ビルド*と呼び、元のビルドプロセスを*元の App Runner ビルド*と呼びます。以前のバージョンのランタイムプラットフォームへの重大な変更を避けるために、App Runner は改訂されたビルドを特定のランタイムバージョン、通常は新しくリリースされたメジャーリリースにのみ適用します。

`apprunner.yaml` 設定ファイルに新しいコンポーネントが導入されました。これは、改訂されたビルドを特定のユースケースに対して下位互換性を持たせ、アプリケーションのビルドをより柔軟に設定できるようにするためです。これはオプションの[`pre-run`](config-file-ref.md#config-file-ref.run)パラメータです。このパラメータをいつ使用するか、およびビルドに関するその他の有用な情報を以下のセクションで説明します。

次の表は、特定のマネージドランタイムバージョンに適用される App Runner ビルドのバージョンを示しています。このドキュメントは引き続き更新され、現在のランタイムについてお知らせします。



- ** Python – [リリース情報](service-source-code-python-releases.md)  **
  - ****ランタイムバージョン**:** Python 3.11 (\!) / ****ビルドプロセス**:** 改訂 / ****App Runner サポート終了日**:** 
  - ****ランタイムバージョン**:** Python 3.8 / ****ビルドプロセス**:** 元 / ****App Runner サポート終了日**:** 2025 年 12 月 1 日
  - ****ランタイムバージョン**:** Python 3.7 / ****ビルドプロセス**:** 元 / ****App Runner サポート終了日**:** 2025 年 12 月 1 日

- ** Node.js – [リリース情報](service-source-code-nodejs-releases.md) **
  - ****ランタイムバージョン**:** Node.js 22 / ****ビルドプロセス**:** 改訂 / ****App Runner サポート終了日**:** 
  - ****ランタイムバージョン**:** Node.js 18 / ****ビルドプロセス**:** 改訂 / ****App Runner サポート終了日**:** 2025 年 12 月 1 日
  - ****ランタイムバージョン**:** Node.js 16 / ****ビルドプロセス**:** 元 / ****App Runner サポート終了日**:** 2025 年 12 月 1 日
  - ****ランタイムバージョン**:** Node.js 14 / ****ビルドプロセス**:** 元 / ****App Runner サポート終了日**:** 2025 年 12 月 1 日
  - ****ランタイムバージョン**:** Node.js 12 / ****ビルドプロセス**:** 元 / ****App Runner サポート終了日**:** 2025 年 12 月 1 日

- ** Corretto – [リリース情報](service-source-code-java-releases.md) **
  - ****ランタイムバージョン**:** Corretto 11 / ****ビルドプロセス**:** 元 / ****App Runner サポート終了日**:** 
  - ****ランタイムバージョン**:** Corretto 8 / ****ビルドプロセス**:** 元 / ****App Runner サポート終了日**:** 

- ** .NET – [リリース情報](service-source-code-dotnet-releases.md) **
  - ****ランタイムバージョン**:** .NET 6 \*
  - ****ビルドプロセス**:** 元
  - ****App Runner サポート終了日**:** 2025 年 12 月 1 日

- ** PHP – [リリース情報](service-source-code-php-releases.md) **
  - ****ランタイムバージョン**:** PHP 8.1 \*
  - ****ビルドプロセス**:** 元
  - ****App Runner サポート終了日**:** 2025 年 12 月 31 日

- ** Ruby – [リリース情報](service-source-code-ruby-releases.md) **
  - ****ランタイムバージョン**:** Ruby 3.1 \*
  - ****ビルドプロセス**:** 元
  - ****App Runner サポート終了日**:** 2025 年 12 月 1 日

- ** Go – [リリース情報](service-source-code-go-releases.md) **
  - ****ランタイムバージョン**:** Go 1 \*
  - ****ビルドプロセス**:** 元
  - ****App Runner サポート終了日**:** 2025 年 12 月 1 日



**注記**  
リストされているランタイムの一部には、**サポート終了日**が含まれています。詳細については、「[マネージドランタイムバージョンのサポート終了](#service-source-code.managed-platforms.eos)」を参照してください。

**重要**  
**Python 3.11** – Python 3.11 マネージドランタイムを使用するサービスのビルド設定に関する特定の推奨事項があります。詳細については、*Python プラットフォーム*トピック[特定のランタイムバージョンのコールアウト](service-source-code-python.md#service-source-code-python.callouts)の「」を参照してください。

### App Runner のビルドと移行の詳細
<a name="service-source-code.build-detail.builds-and-migr"></a>

改訂されたビルドを使用する新しいランタイムにアプリケーションを移行する場合、ビルド設定を少し変更する必要がある場合があります。

移行に関する考慮事項のコンテキストを提供するために、最初に元の App Runner ビルドと改訂されたビルドの両方の高レベルプロセスについて説明します。設定の更新が必要になる可能性のあるサービスに関する特定の属性を記述するセクションに続きます。

#### 元の App Runner ビルド
<a name="service-source-code.build-detail.v1"></a>

元の App Runner アプリケーションビルドプロセスは、 AWS CodeBuild サービスを活用します。初期ステップは、CodeBuild サービスによってキュレートされたイメージに基づいています。Docker ビルドプロセスは、該当する App Runner マネージドランタイムイメージをベースイメージとして使用するプロセスに従います。

一般的なステップは次のとおりです。

1. CodeBuild でキュレートされたイメージで`pre-build`コマンドを実行します。

   `pre-build` コマンドはオプションです。`apprunner.yaml` これらは設定ファイルでのみ指定できます。

1. 前のステップと同じイメージで CodeBuild を使用して`build`コマンドを実行します。

   `build` コマンドは必須です。これらは、App Runner コンソール、App Runner API、または`apprunner.yaml`設定ファイルで指定できます。

1. Docker ビルドを実行して、特定のプラットフォームとランタイムバージョンの App Runner マネージドランタイムイメージに基づいてイメージを生成します。

1. **ステップ 2 **で生成したイメージから `/app` ディレクトリをコピーします。送信先は、**ステップ 3 **で生成した App Runner マネージドランタイムイメージに基づくイメージです。

1. 生成された App Runner マネージドランタイムイメージで`build`コマンドを再度実行します。ビルドコマンドを再度実行して、**ステップ 4 **でコピーした`/app`ディレクトリのソースコードからビルドアーティファクトを生成します。このイメージは、後で App Runner によってデプロイされ、コンテナでウェブサービスを実行します。

   `build` コマンドは必須です。これらは、App Runner コンソール、App Runner API、または`apprunner.yaml`設定ファイルで指定できます。

1. **ステップ 2** の CodeBuild イメージで`post-build`コマンドを実行します。

   `post-build` コマンドはオプションです。`apprunner.yaml` これらは設定ファイルでのみ指定できます。

ビルドが完了すると、App Runner は**ステップ 5 **で生成された App Runner マネージドランタイムイメージをデプロイして、コンテナでウェブサービスを実行します。

#### 改訂された App Runner ビルド
<a name="service-source-code.build-detail.v2"></a>

改訂されたビルドプロセスは、前のセクションで説明した元のビルドプロセスよりも高速で効率的です。これにより、以前のバージョンビルドで発生するビルドコマンドの重複がなくなります。また、アプリケーションの実行に必要なソースコード、ビルドアーティファクト、ランタイムのみを含む、フットプリントが小さい最終イメージを作成します。

このビルドプロセスでは、Docker マルチステージビルドを使用します。一般的なプロセスステップは次のとおりです。

1. **ビルドステージ** — App Runner ビルドイメージ上で `pre-build`および `build` コマンドを実行する docker ビルドプロセスを開始します。

   1. アプリケーションのソースコードを `/app` ディレクトリにコピーします。
**注記**  
この`/app`ディレクトリは、Docker ビルドのすべてのステージで作業ディレクトリとして指定されます。

   1. `pre-build` コマンドを実行します。

      コマンドは`pre-build`オプションです。`apprunner.yaml` これらは設定ファイルでのみ指定できます。

   1. `build` コマンドを実行します。

      `build` コマンドは必須です。これらは、App Runner コンソール、App Runner API、または`apprunner.yaml`設定ファイルで指定できます。

1. **パッケージングステージ** — App Runner 実行イメージにも基づいている、最終的な顧客コンテナイメージを生成します。

   1. ディレクトリを以前の**ビルドステージ**`/app`から新しい実行イメージにコピーします。これには、アプリケーションのソースコードと前のステージのビルドアーティファクトが含まれます。

   1. `pre-run` コマンドを実行します。`build` コマンドを使用して`/app`ディレクトリの外部でランタイムイメージを変更する必要がある場合は、`apprunner.yaml`設定ファイルのこのセグメントに同じコマンドまたは必要なコマンドを追加します。

      これは、改訂された App Runner ビルドをサポートするために導入された新しいパラメータです。

      `pre-run` コマンドはオプションです。`apprunner.yaml` これらは設定ファイルでのみ指定できます。
**注意事項**  
`pre-run` コマンドは、改訂されたビルドでのみサポートされます。サービスが元のビルドを使用するランタイムバージョンを使用している場合は、設定ファイルに追加しないでください。
`build` コマンドを使用して`/app`ディレクトリの外部を変更する必要がない場合は、`pre-run`コマンドを指定する必要はありません。

1. **ビルド後ステージ** — このステージは*ビルドステージ*から再開し、`post-build`コマンドを実行します。

   1. `/app` ディレクトリ内で`post-build`コマンドを実行します。

      `post-build` コマンドはオプションです。`apprunner.yaml` これらは設定ファイルでのみ指定できます。

ビルドが完了すると、App Runner は Run イメージをデプロイして、コンテナでウェブサービスを実行します。

**注記**  
ビルドプロセスを設定する`apprunner.yaml`ときに、 の実行セクションの`env`エントリに誤解しないでください。**ステップ 2 (b) **で参照される `pre-run` コマンドパラメータは Run セクションにありますが、Run セクションの `env`パラメータを使用してビルドを設定しないでください。`pre-run` コマンドは、設定ファイルのビルドセクションで定義されている`env`変数のみを参照します。詳細については、*App Runner 設定ファイルの章*[実行セクション](config-file-ref.md#config-file-ref.run)の「」を参照してください。

#### 移行に関する考慮事項のサービス要件
<a name="service-source-code.build-detail.migrating"></a>

アプリケーション環境にこれら 2 つの要件のいずれかがある場合は、 `pre-run` コマンドを追加してビルド設定を修正する必要があります。
+ `build` コマンドを使用して`/app`ディレクトリの外部を変更する必要がある場合。
+ コマンドを 2 `build`回実行して必要な環境を作成する必要がある場合。これは非常にまれな要件です。ほとんどのビルドはこれを行いません。

**`/app` ディレクトリ外の変更**
+ [改訂された App Runner ビルド](#service-source-code.build-detail.v2)では、アプリケーションに `/app` ディレクトリ外の依存関係がないことを前提としています。
+ `apprunner.yaml` ファイル、App Runner API、または App Runner コンソールで指定するコマンドは、 `/app` ディレクトリにビルドアーティファクトを生成する必要があります。
+ `pre-build`、、および `post-build` コマンドを変更して`build`、すべてのビルドアーティファクトが `/app` ディレクトリにあることを確認できます。
+ アプリケーションのビルドで、 サービスの生成されたイメージを `/app` ディレクトリの外部でさらに変更する必要がある場合は、 で新しい`pre-run`コマンドを使用できます`apprunner.yaml`。詳細については、「[設定ファイルを使用した App Runner サービスオプションの設定](config-file.md)」を参照してください。

**`build` コマンドを 2 回実行する**
+ [元の App Runner ビルド](#service-source-code.build-detail.v1)は、最初にステップ 2、次に**ステップ 5** で`build`コマンドを 2 回実行します。 ****改訂された App Runner ビルドは、この冗長性を修復し、`build`コマンドを 1 回だけ実行します。アプリケーションに`build`コマンドを 2 回実行するための異常な要件がある場合、改訂された App Runner ビルドには、 `pre-run`パラメータを使用して同じコマンドを再度指定して実行するオプションが用意されています。これにより、同じダブルビルド動作が保持されます。