

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自訂建置映像
<a name="custom-build-image"></a>

您可以使用自訂建置映像，為 Amplify 應用程式提供自訂建置環境。如果您有特定的相依性，在使用 Amplify 預設容器的建置期間需要很長時間才能安裝 ，您可以建立自己的 Docker 映像，並在建置期間加以參考。映像可以在 Amazon Elastic Container Registry Public 上託管。

若要讓自訂建置映像做為 Amplify 建置映像，它必須符合下列要求。

**自訂建置映像需求**

1. 支援 GNU C Library (glibc) 的 Linux 發行版本，例如針對 x86-64 架構編譯的 Amazon Linux。

1.  **cURL**：在啟動您的自訂影像時，我們會下載建置執行器至容器，因此需要有 cURL。如果缺少此相依性，則建置會立即失敗而沒有任何輸出，因為我們的建置執行器無法產生任何輸出。

1.  **Git**：該影像上需安裝 Git，才能複製 Git 儲存庫。如果缺少此相依性，**複製儲存庫**步驟將會失敗。

1.  **OpenSSH**：為了安全地複製您的儲存庫，我們需要 OpenSSH 在建置期間暫時設定 SSH 金鑰。OpenSSH 套件提供建置執行器執行此作業所需的命令。

1.  **Bash 和 Bourne Shell**：這兩個公用程式用於在建置時執行命令。如果未安裝，您的組建可能會在開始之前失敗。

1.  **Node.JS\+NPM**：我們的建置執行器不會安裝 Node。相反地，它依賴於在映像中安裝的節點和 NPM。只有需要 NPM 套件或 Node 特定命令的建置，才要進行此操作。不過，我們強烈建議安裝它們，因為當它們存在時，Amplify 建置執行器可以使用這些工具來改善建置執行。當您為 Hugo 設定覆寫時，Amplify 的套件覆寫功能會使用 NPM 安裝 Hugo 延伸套件。

下列套件並非必要項目，但強烈建議您安裝。

1. **NVM (Node Version Manager)**：如果您需要處理不同版本的 ，建議您安裝此版本管理員Node。當您設定覆寫時，Amplify 的套件覆寫功能會在每次建置之前NVM使用 來變更 Node.js 版本。

1. **Wget**：Amplify 可以使用 Wget公用程式在建置程序期間下載檔案。建議您將其安裝在自訂映像中。

1. **Tar**：Amplify 可以使用 Tar公用程式，在建置過程中解壓縮下載的檔案。建議您將其安裝在自訂映像中。

## 設定應用程式的自訂建置映像
<a name="configuring-a-custom-build-image"></a>

使用下列程序，在 Amplify 主控台中設定應用程式的自訂建置映像。

**設定 Amazon ECR 中託管的自訂建置映像**

1. 請參閱 *Amazon ECR 公有使用者指南*中的[入門](https://docs.aws.amazon.com/AmazonECR/latest/public/public-getting-started.html)，以使用 Docker 映像設定 Amazon ECR 公有儲存庫。

1. 登入 AWS 管理主控台 並開啟 [Amplify 主控台](https://console.aws.amazon.com/amplify/)。

1. 選擇您要為其設定自訂建置映像的應用程式。

1. 在導覽窗格中，選擇**託管**、**建置設定**。

1. 在**建置設定**頁面的**建置映像設定**區段中，選擇**編輯**。

1. 在**編輯建置映像設定**頁面上，展開**建置映像**功能表，然後選擇**自訂建置映像**。

1. 輸入您在步驟一中建立的 Amazon ECR Public 儲存庫名稱。這是您的建置映像託管的位置。例如，如果您的儲存庫名稱是 *ecr-examplerepo*，您會輸入 **public.ecr.aws/xxxxxxxx/ecr-examplerepo**。

1. 選擇**儲存**。

## 在建置映像中使用特定套件和相依性版本
<a name="setup-live-updates"></a>

即時套件更新可讓您指定要在 Amplify 預設建置映像中使用的套件和相依性版本。預設建置映像隨附預先安裝的數個套件和相依性 （例如 Hugo、Amplify CLI、Yarn 等）。透過即時套件更新，您可以覆寫這些相依性的版本，並指定特定版本，或確保一律安裝最新版本。

如果啟用即時套件更新，則在建置執行之前，建置執行器會先更新 （或降級） 指定的相依性。這會根據更新相依性所需的時間來增加建置時間，但優點是您可以確保使用相同版本的相依性來建置應用程式。

**警告**  
將 Node.js 版本設定為**最新**會導致建置失敗。反之，您必須指定確切的 Node.js 版本，例如 `18`、 `21.5`或 `v0.1.2`。

**設定即時套件更新**

1. 登入 AWS 管理主控台 並開啟 [Amplify 主控台](https://console.aws.amazon.com/amplify/)。

1. 選擇您要為其設定即時套件更新的應用程式。

1. 在導覽窗格中，選擇**託管**、**建置設定**。

1. 在**建置設定**頁面的**建置映像設定**區段中，選擇**編輯**。

1. 在**編輯建置映像設定**頁面上，**即時套件更新**清單，選擇**新增**。

1. 針對**套件**，選取要覆寫的相依性。

1. 對於**版本**，請保持預設**最新**或輸入特定版本的相依性。如果您使用**最新版本**，相依性將一律升級至可用的最新版本。

1. 選擇**儲存**。