1.2. ソース定義
次のフィールドの値を設定することで、Build カスタムリソース (CR) でビルドのソース情報を設定できます。
-
source.git.url: Git リポジトリーで利用可能なイメージのソースの場所を定義します。 -
source.git.cloneSecret: プライベート Git リポジトリーの SSH 秘密鍵を含む namespace 内のシークレットを参照します。 -
source.git.revision: ソース Git リポジトリーから選択する特定のリビジョンを定義します。たとえば、コミット、タグ、ブランチ名などです。このフィールドのデフォルトは、Git リポジトリーのデフォルトブランチです。 -
source.contextDir: ルートフォルダーにソースコードが存在しないリポジトリーのコンテキストパスを指定します。
ビルドコントローラーは、イメージをプルするために指定した Git リポジトリーが存在するかどうかを自動検証しません。検証する必要がある場合は、次の例に示すように、build.shipwright.io/verify.repository アノテーションの値を true に設定します。
apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
name: buildah-golang-build
annotations:
build.shipwright.io/verify.repository: "true"
spec:
source:
git:
url: https://github.com/shipwright-io/sample-go
contextDir: docker-build
ビルドコントローラーは、以下のシナリオで Git リポジトリーの存在を検証します。
- HTTP または HTTPS プロトコルでエンドポイント URL を使用する場合。
-
git@などの SSH プロトコルを定義しているが、source.git.cloneSecretなどの参照シークレットを定義していない場合。
以下の例は、異なるソース入力セットでビルドを設定する方法を示しています。
例: 認証情報を使用したビルドの設定
次の例に示すように、認証情報を指定してソースを使用してビルドを設定できます。
apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
name: buildah-build
spec:
source:
git:
url: https://github.com/sclorg/nodejs-ex
cloneSecret: source-repository-credentials
例: コンテキストパスを使用したビルドの設定
次の例に示すように、Git リポジトリー内のコンテキストパスを指定するソースを使用してビルドを設定できます。
apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
name: buildah-custom-context-dockerfile
spec:
source:
git:
url: https://github.com/userjohn/npm-simple
contextDir: docker-build
例: タグを使用したビルドの設定
次の例に示すように、Git リポジトリーのタグ v.0.1.0 を指定するソースを使用してビルドを設定できます。
apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
name: buildah-golang-build
spec:
source:
git:
url: https://github.com/shipwright-io/sample-go
revision: v0.1.0
例: 環境変数を使用したビルドの設定
次の例に示すように、環境変数を指定するビルドを設定することもできます。
apiVersion: shipwright.io/v1beta1
kind: Build
metadata:
name: buildah-golang-build
spec:
source:
git:
url: https://github.com/shipwright-io/sample-go
contextDir: docker-build
env:
- name: <example_var_1>
value: "<example_value_1>"
- name: <example_var_2>
value: "<example_value_2>"