自訂建置映像 - AWS Amplify 託管

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

自訂建置映像

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

若要讓自訂建置映像可用作 Amplify 建置映像,必須符合下列需求。

自訂建置映像需求

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

  2. c URL:當我們啟動自訂映像時,我們會將建置執行器下載到您的容器,因此我們需要 cURL 存在。如果缺少此相依性,則建置會立即失敗而沒有任何輸出,因為我們的建置執行器無法產生任何輸出。

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

  4. 開啟 SSH:為了安全地複製您的儲存庫,我們需要開啟SSH,以在建置期間暫時設定SSH金鑰。OpenSSH 套件提供建置執行器執行此操作所需的命令。

  5. Bash 和 Bourne Shell :這兩個公用程式用於在建置時執行命令。如果未安裝,您的建置可能會在啟動之前失敗。

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

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

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

  2. Wget:Amplify 可以使用 Wget 在建置過程中下載檔案的公用程式。建議您將其安裝在自訂映像中。

  3. Tar :Amplify 可以使用 Tar 在建置過程中取消壓縮下載檔案的公用程式。建議您將其安裝在自訂映像中。

設定應用程式的自訂建置映像

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

設定託管在 Amazon 中的自訂建置映像 ECR
  1. 請參閱 Amazon ECR Public 使用者指南中的入門,以使用 Docker 映像設定 Amazon ECR Public 儲存庫。

  2. 登入 AWS Management Console 並開啟 Amplify 主控台

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

  4. 在導覽窗格中,選擇託管 建置設定

  5. 建置設定頁面上的建置映像設定區段中,選擇編輯

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

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

  8. 選擇 Save (儲存)。

在建置映像中使用特定套件和相依性版本

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

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

警告

將 Node.js 版本設定為最新會導致建置失敗。您必須指定確切的 Node.js 版本,例如 1821.5v0.1.2

若要設定即時套件更新
  1. 登入 AWS Management Console 並開啟 Amplify 主控台

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

  3. 在導覽窗格中,選擇託管 建置設定

  4. 建置設定頁面上的建置映像設定區段中,選擇編輯

  5. 編輯建置映像設定頁面上,即時套件更新清單,選擇新增

  6. 對於套件 ,選取要覆寫的相依性。

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

  8. 選擇 Save (儲存)。