2.7. 基本的なビルドの実行および設定

以下のセクションでは、ビルドの開始および中止、BuildConfigs の編集、BuildConfig の削除、ビルドの詳細の表示、およびビルドログへのアクセスを含む基本的なビルド操作についての方法を説明します。

2.7.1. ビルドの開始

現在のプロジェクトに既存のビルド設定から新規ビルドを手動で起動できます。

手順

手動でビルドを開始するには、以下のコマンドを入力します。

$ oc start-build <buildconfig_name>

2.7.1.1. ビルドの再実行

--from-build フラグを使用してビルドを手動で再度実行します。

手順

  • 手動でビルドを再実行するには、以下のコマンドを入力します。

    $ oc start-build --from-build=<build_name>

2.7.1.2. ビルドログのストリーミング

--follow フラグを指定して、stdout のビルドのログをストリーミングします。

手順

  • stdout でビルドのログを手動でストリーミングするには、以下のコマンドを実行します。

    $ oc start-build <buildconfig_name> --follow

2.7.1.3. ビルド開始時の環境変数の設定

--env フラグを指定して、ビルドの任意の環境変数を設定します。

手順

  • 必要な環境変数を指定するには、以下のコマンドを実行します。

    $ oc start-build <buildconfig_name> --env=<key>=<value>

2.7.1.4. ソースを使用したビルドの開始

Git ソースプルまたは Dockerfile に依存してビルドするのではなく、ソースを直接プッシュしてビルドを開始することも可能です。ソースには、Git または SVN の作業ディレクトリーの内容、デプロイする事前にビルド済みのバイナリーアーティファクトのセットまたは単一ファイルのいずれかを選択できます。これは、start-build コマンドに以下のオプションのいずれかを指定して実行できます。

オプション説明

--from-dir=<directory>

アーカイブし、ビルドのバイナリー入力として使用するディレクトリーを指定します。

--from-file=<file>

単一ファイルを指定します。これはビルドソースで唯一のファイルでなければなりません。 このファイルは、元のファイルと同じファイル名で空のディレクトリーのルートに置いてください。

--from-repo=<local_source_repo>

ビルドのバイナリー入力として使用するローカルリポジトリーへのパスを指定します。--commit オプションを追加して、ビルドに使用するブランチ、タグ、またはコミットを制御します。

以下のオプションをビルドに直接指定した場合には、コンテンツはビルドにストリーミングされ、現在のビルドソースの設定が上書きされます。

注記

バイナリー入力からトリガーされたビルドは、サーバー上にソースを保存しないため、ベースイメージの変更でビルドが再度トリガーされた場合には、ビルド設定で指定されたソースが使用されます。

手順

  • 以下のコマンドを使用してソースからビルドを開始し、タグ v2 からローカル Git リポジトリーの内容をアーカイブとして送信します。

    $ oc start-build hello-world --from-repo=../hello-world --commit=v2

2.7.2. ビルドの中止

Web コンソールまたは以下の CLI コマンドを使用して、ビルドを中止できます。

手順

  • 手動でビルドを取り消すには、以下のコマンドを入力します。

    $ oc cancel-build <build_name>

2.7.2.1. 複数ビルドのキャンセル

以下の CLI コマンドを使用して複数ビルドを中止できます。

手順

  • 複数ビルドを手動で取り消すには、以下のコマンドを入力します。

    $ oc cancel-build <build1_name> <build2_name> <build3_name>

2.7.2.2. すべてのビルドのキャンセル

以下の CLI コマンドを使用し、ビルド設定からすべてのビルドを中止できます。

手順

  • すべてのビルドを取り消すには、以下のコマンドを実行します。

    $ oc cancel-build bc/<buildconfig_name>

2.7.2.3. 指定された状態のすべてのビルドのキャンセル

特定の状態にあるビルドをすべて取り消すことができます (例: new または pending)。この際、他の状態のビルドは無視されます。

手順

  • 特定の状態のすべてのビルドを取り消すには、以下のコマンドを入力します。

    $ oc cancel-build bc/<buildconfig_name>

2.7.3. BuildConfig の編集

ビルド設定を編集するには、Developer パースペクティブの Builds ビューで Edit BuildConfig オプションを使用します。

以下のいずれかのビューを使用して BuildConfig を編集できます。

  • Form view を使用すると、標準のフォームフィールドおよびチェックボックスを使用して BuildConfig を編集できます。
  • YAML ビュー を使用すると、操作を完全に制御して BuildConfig を編集できます。

データを失うことなく、Form viewYAML view を切り替えることができます。Form ビュー のデータは YAML ビュー に転送されます (その逆も同様です)。

手順

  1. Developer パースペクティブの Builds ビューで、メニュー kebab をクリックし、Edit BuildConfig オプションを表示します。
  2. Edit BuildConfig をクリックし、Form view オプションを表示します。
  3. Git セクションで、アプリケーションの作成に使用するコードベースの Git リポジトリー URL を入力します。その後、URL は検証されます。

    • オプション: Show Advanced Git Options をクリックし、以下のような詳細を追加します。

      • Git Reference: アプリケーションのビルドに使用するコードが含まれるブランチ、タグ、またはコミットを指定します。
      • Context Dir: アプリケーションのビルドに使用するアプリケーションのコードが含まれるサブディレクトリーを指定します。
      • Source Secret: プライベートリポジトリーからソースコードをプルするための認証情報で Secret Name を作成します。
  4. Build from セクションで、ビルド元となるオプションを選択します。以下のオプションで使用できます。

    • イメージストリームタグ は、所定のイメージストリームおよびタグのイメージを参照します。ビルド元およびプッシュ元の場所に指定するプロジェクト、イメージストリーム、およびタグを入力します。
    • イメージストリームイメージ は、所定のイメージストリームのイメージとおよびイメージ名を参照します。ビルドするイメージストリームイメージを入力します。また、プッシュ先となるプロジェクト、イメージストリーム、およびタグも入力します。
    • Docker image: Docker イメージは Docker イメージリポジトリーを使用して参照されます。また、プッシュ先の場所を参照するように、プロジェクト、イメージストリーム、タグを入力する必要があります。
  5. オプション: 環境変数 セクションでNameValue フィールドを使用して、プロジェクトに関連付けられた環境変数を追加します。環境変数を追加するには、Add Value または Add from ConfigMapSecret を使用します。
  6. オプション: 以下の高度なオプションを使用してアプリケーションをさらにカスタマイズできます。

    トリガー
    ビルダーイメージの変更時に新規イメージビルドをトリガーします。Add Trigger をクリックし、Type および Secret を選択して、トリガーを追加します。
    シークレット
    アプリケーションのシークレットを追加します。Add secret をクリックし、Secret および Mount point を選択して、さらにシークレットを追加します。
    Policy
    Run policy をクリックして、ビルド実行ポリシーを選択します。選択したポリシーは、ビルド設定から作成されるビルドを実行する順番を決定します。
    フック
    Run build hooks after image is built を選択して、ビルドの最後にコマンドを実行し、イメージを検証します。Hook typeCommand および Arguments をコマンドに追加しあ m す。
  7. Save をクリックして BuildConfig を保存します。

2.7.4. BuildConfig の削除

以下のコマンドで BuildConfig を削除します。

手順

  • BuildConfig を削除するには、以下のコマンドを入力します。

    $ oc delete bc <BuildConfigName>

    これにより、この BuildConfig でインスタンス化されたビルドがすべて削除されます。

  • BuildConfig を削除して、 BuildConfig からインスタンス化されたビルドを保持するには、以下のコマンドの入力時に --cascade=false フラグを指定します。

    $ oc delete --cascade=false bc <BuildConfigName>

2.7.5. ビルドの詳細表示

Web コンソールまたは oc describe CLI コマンドを使用して、ビルドの詳細を表示できます。

これにより、以下のような情報が表示されます。

  • ビルドソース
  • ビルドストラテジー
  • 出力先
  • 宛先レジストリーのイメージのダイジェスト
  • ビルドの作成方法

ビルドが Docker または Source ストラテジーを使用する場合、oc describe 出力には、コミット ID、作成者、コミットしたユーザー、メッセージなどのビルドに使用するソースのリビジョンの情報が含まれます。

手順

  • ビルドの詳細を表示するには、以下のコマンドを入力します。

    $ oc describe build <build_name>

2.7.6. ビルドログへのアクセス

Web コンソールまたは CLI を使用してビルドログにアクセスできます。

手順

  • ビルドを直接使用してログをストリーミングするには、以下のコマンドを入力します。

    $ oc describe build <build_name>

2.7.6.1. BuildConfig ログへのアクセス

Web コンソールまたは CLI を使用して BuildConfig ログにアクセスできます。

手順

  • BuildConfig の最新ビルドのログをストリーミングするには、以下のコマンドを入力します。

    $ oc logs -f bc/<buildconfig_name>

2.7.6.2. 特定バージョンのビルドについての BuildConfig ログへのアクセス

Web コンソールまたは CLI を使用して、BuildConfig についての特定バージョンのビルドのログにアクセスすることができます。

手順

  • BuildConfig の特定バージョンのビルドのログをストリームするには、以下のコマンドを入力します。

    $ oc logs --version=<number> bc/<buildconfig_name>

2.7.6.3. ログの冗長性の有効化

詳細の出力を有効にするには、BuildConfig 内の sourceStrategy または dockerStrategy の一部として BUILD_LOGLEVEL 環境変数を指定します。

注記

管理者は、env/BUILD_LOGLEVEL を設定して、OpenShift Container Platform インスタンス全体のデフォルトのビルドの詳細レベルを設定できます。このデフォルトは、指定の BuildConfigBUILD_LOGLEVEL を指定することで上書きできます。コマンドラインで --build-logleveloc start-build に渡すことで、バイナリー以外のビルドについて優先順位の高い上書きを指定することができます。

ソースビルドで利用できるログレベルは以下のとおりです。

レベル 0

assemble スクリプトを実行してコンテナーからの出力とすべてのエラーを生成します。これはデフォルトになります。

レベル 1

実行したプロセスに関する基本情報を生成します。

レベル 2

実行したプロセスに関する詳細情報を生成します。

レベル 3

実行したプロセスに関する詳細情報と、アーカイブコンテンツの一覧を生成します。

レベル 4

現時点ではレベル 3 と同じ情報を生成します。

レベル 5

これまでのレベルで記載したすべての内容と docker のプッシュメッセージを提供します。

手順

  • 詳細の出力を有効にするには、BuildConfig 内の sourceStrategy または dockerStrategy の一部として BUILD_LOGLEVEL 環境変数を渡します。

    sourceStrategy:
    ...
      env:
        - name: "BUILD_LOGLEVEL"
          value: "2" 1
    1
    この値を任意のログレベルに調整します。