1.2. ソース定義
ビルド カスタムリソース (CR) で、ビルドに使用するソースコードの場所を設定します。
以下のソースフィールドは、ビルドが Git リポジトリーにアクセスし、ソースコンテンツを選択する方法を指定します。
-
source.git.url:Git リポジトリーの場所。 -
source.git.cloneSecret: プライベートリポジトリーの SSH キーを含むシークレット。 -
source.git.revision: 特定のコミット、タグ、またはブランチ (デフォルトはデフォルトブランチ)。 -
source.contextDir: ソースコードを含むサブディレクトリー。
ビルドコントローラーは、デフォルトでは Git リポジトリーを検証しません。検証を有効にするには、次の例に示すように、ビルド CR で 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などの参照シークレットを定義していない場合。
以下の設定例は、異なるソース入力セットを使用してビルドを設定する方法を示しています。
- 認証情報を使用してビルドを設定する
次の例に示すように、リポジトリーの認証情報を含むシークレットを参照することで、プライベート Git リポジトリーにアクセスするようにビルドを設定します。
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- タグを使用してビルドを設定する
次の例に示すように、v0.1.0 などの特定の Git タグをソースリビジョンとして使用するようにビルドを設定します。
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>"