メニュー
AWS CodeBuild
ユーザーガイド (API バージョン 2016-10-06)

ビルド環境でのシェルとコマンド

ビルドのライフサイクル中にビルド環境で実行するための AWS CodeBuild の一連のコマンドを提供します (たとえば、ビルドの依存関係のインストール、ソースコードのテストおよびコンパイルなど)。これらのコマンドを指定する方法はいくつかあります。

  • ビルド仕様ファイルを作成し、それをソースコードに組み込みます。このファイルでは、ビルドライフサイクルの各段階で実行するコマンドを指定します。詳細については、「AWS CodeBuild のビルド仕様に関するリファレンス」を参照してください。

  • AWS CodeBuild または AWS CodePipeline コンソールを使用してビルドプロジェクトを作成します。[Insert build commands] の [Build command] で、[build] フェーズで実行するコマンドを指定します。詳細については、「ビルドプロジェクトの作成 (コンソール)」または「AWS CodeBuild で AWS CodePipeline を使用する」で「ビルドコマンドの挿入」の説明を参照してください。

  • AWS CodeBuild コンソールを使用してビルドプロジェクトの設定を変更します。[Insert build commands] の [Build command] で、[build] フェーズで実行するコマンドを指定します。詳細については、「ビルドプロジェクトの設定を変更する (コンソール)」で「ビルドコマンドの挿入」の説明を参照してください。

  • AWS CLI または AWS SDK を使用して、ビルドプロジェクトを作成するか、ビルドプロジェクトの設定を変更します。コマンドを使用してビルド仕様ファイルを含むソースコードを参照するか、ビルド仕様ファイルと同等の内容を含む単一の文字列を指定します。詳細については、ビルドプロジェクトを作成する または ビルドプロジェクトの設定を変更する にある buildspec 値の説明を参照してください。

  • AWS CLI または AWS SDK を使用してビルドを開始し、ビルド仕様ファイルを指定するか、ビルド仕様ファイルと同等の内容を含む単一の文字列を指定します。詳細については、ビルドの実行 にある buildspecOverride 値の説明を参照してください。

ビルド環境のデフォルトシェルでサポートされている任意のコマンドを指定できます (- sh は選別されたイメージのデフォルトシェルです)。ビルド仕様バージョン 0.1 では、AWS CodeBuild はビルド環境のデフォルトシェルの各インスタンスで各コマンドを実行します。つまり、各コマンドは他のすべてのコマンドとは独立して実行されます。したがって、デフォルトでは、以前のコマンド (ディレクトリの変更や環境変数の設定など) の状態に依存する単一のコマンドを実行することはできません。この制限を回避するには、バージョン 0.2 を使用することをお勧めします。これにより、問題が解決されます。何らかの理由でバージョン 0.1 を使用する場合は、以下のアプローチをお勧めします。

  • デフォルトシェルの単一のインスタンスで実行するコマンドを含むシェルスクリプトをソースコードに含めます。たとえば、my-script.sh という名前のファイルを、cd MyDir; mkdir -p mySubDir; cd mySubDir; pwd; などのコマンドを含むソースコードに含めます。次にビルド仕様ファイルで ./my-script.sh コマンドを指定します。

  • ビルド仕様ファイル (または build フェーズに限ってはコンソールの [Build command] 設定) で、デフォルトシェルの単一のインスタンスで実行するすべてのコマンドが含まれている単一のコマンドを指定します (例: cd MyDir && mkdir -p mySubDir && cd mySubDir && pwd)。

AWS CodeBuild でエラーが発生した場合は、デフォルトシェルの独自のインスタンスで単一のコマンドを実行するのに比べて、トラブルシューティングが難しくなる場合があります。