建置環境中的 Shell 和命令 - AWS CodeBuild

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

建置環境中的 Shell 和命令

您可以提供一組命令,讓 AWS CodeBuild 在組建生命週期期間 (例如,安裝組建相依性,並測試及編譯您的來源碼) 於組建環境中執行。有幾種方式可以指定這些命令:

  • 建立建置規格檔案,並將其包含在您的來源碼中。在這個檔案中,指定您想在每個建置生命週期階段執行的命令。如需詳細資訊,請參閱 CodeBuild 的建置規格參考

  • 使用 CodeBuild 主控台來建立組建專案。在 Insert build commands (插入組建命令)Build commands (組建命令) 中,輸入您想在 build 階段執行的命令。如需詳細資訊,請參閱 建立組建專案 (主控台)

  • 使用 CodeBuild 主控台變更建置專案的設定。在 Insert build commands (插入組建命令)Build commands (組建命令) 中,輸入您想在 build 階段執行的命令。如需詳細資訊,請參閱 變更建置專案的設定 (主控台)

  • 使用 AWS CLI 或 AWS 軟體開發套件來建立組建專案,或變更組建專案的設定。參考來源碼 (其中包含 Buildspec 檔案與您的命令),或者指定單一字串以包含相同 Buildspec 檔案的內容。如需詳細資訊,請參閱建立組建專案變更建置專案設定

  • 使用 AWS CLI 或 AWS 軟體開發套件開始組建,並指定 Buildspec 檔案,或單一字串以包含相同 Buildspec 檔案的內容。如需詳細資訊,請參閱 手動執行建置 中針對 buildspecOverride 值的描述。

您可以指定任何 Shell 命令語言 (sh) 命令。在 Buildspec 0.1 版中,CodeBuild 會在組建環境的個別執行個體中執行每個 Shell 命令。這表示每個命令會與所有其他命令隔離執行。因此,根據預設,如果單一命令倚賴任何之前命令的狀態 (例如,變更目錄或設定環境變數),您就無法加以執行。為因應這個限制,我們建議您使用 0.2 版,它可解決這個問題。如果您必須使用 0.1 版,我們建議以下方法:

  • 在您的來源碼中納入 shell 指令碼,以包含您希望在預設 shell 單一執行個體中執行的命令。例如,您可以在來源碼中包含名稱為 my-script.sh 的檔案,以包含 cd MyDir; mkdir -p mySubDir; cd mySubDir; pwd; 這類命令。接著,在您的 Buildspec 檔案中,指定 ./my-script.sh 命令。

  • 在您的 Buildspec 檔案或 Build commands (組建命令) 設定 (僅限 build 階段) 中,輸入單一命令,以包含您希望在預設 shell 單一執行個體中執行的所有命令 (例如 cd MyDir && mkdir -p mySubDir && cd mySubDir && pwd)。

如果 CodeBuild 遇到錯誤,錯誤可能會比在默認 shell 的自身執行個體中執行個體中執行個體中執行個體中執行個體中執行個體中執行個體時更難故障診斷。

在 Windows Server Core 映像中執行的命令會使用 PowerShell 殼層。