だんだん寒くなって来ましたね。体調にはみなさん気をつけましょうー!
本日は、Openshfit4で利用できるBuildConfigを利用してDocker Buildを行いたいと思います。
CI/CDを検討する際に、Openshfit側でDockerBuildができたら便利だと思う人も少なくないと思います。その際は、BuildConfigを活用してみるのも面白いと思います。
BuildConfigとは
ビルド設定は、単一のビルド定義と新規ビルドを作成するタイミングについてのトリガーを記述します。ビルド設定は BuildConfig で定義されます。 BuildConfig は、新規インスタンスを作成するために API サーバーへの POST で使用可能な REST オブジェクトのことです。
ビルド設定または BuildConfig は、ビルドストラテジーと 1 つまたは複数のソースを特徴としています。ストラテジーはプロセスを決定し、ソースは入力内容を提供します。
OpenshiftでBuildの方法を提供してくれる機能となっています。また、Openshfitで以下の方法でBuildを使用することが可能です。
OpenShift Container Platform ビルドシステムは、ビルド API で指定される選択可能なタイプに基づくビルドストラテジー を幅広くサポートします。利用可能なビルドストラテジーは主に 3 つあります。
- Docker ビルド
- Source-to-Image (S2I) ビルド
- カスタムビルド
今回はDocker ビルドを利用します。
今回の実施内容
- GithubからDockerfileを取得
- BuildConfigを利用してBuildを実施
- ImageStreemを利用して内部レジストリにイメージを保存
Github確認
以下のようなリポジトリを用意しました。リポジトリ内にはDockerfileが含まれています。
上記のDockerfileを取得してきてOpenshfit内でBuildを行います。
BuildConfig確認
kind: BuildConfig
apiVersion: build.openshift.io/v1
metadata:
name: java-test
labels:
build: java-test
spec:
output:
to:
kind: ImageStreamTag
name: 'java-test:latest'
resources: {}
strategy:
type: Docker
dockerStrategy:
dockerfilePath: ./Dockerfile
source:
type: Git
git:
uri: 'https://github.com/ysuke25/wildfly-app-demo.git'
ref: master
ポイント
- 「strategy」にDockerを指定します
- 「strategy.dockerStrategy」にDockerfileのPathを入力します
- 「source」に取得もとのGitを指定します。もちろん、ブランチの指定も可能です。
上記のようなBuildConfigを作成します。上記のYamlをocコマンドを利用してOpenshfitへ適用します。
oc create -f test-java-buildconfig.yaml
実施コマンド
上記の準備ができたら以下のコマンドでbuildをスタートすることが可能です。
oc start-build java-test
まとめ
簡単でしたがBuildConfigを利用してDocker Buildを行う方法を記載しました。
ローカルで動かしたDockerfileをそのままOpenshfitでも利用した場合やデプロイを簡単にした場合に有用な機能だと思います。今回は紹介しませんでしたがwebhookをトリガーと設定することも可能ですので、commitしたら自動的にBuildが走る構成も取ることができます。
また、Buildの方法をOpenshfitにまとめることでマルチクラウド展開なども用意になるかもしれません。
ぜひBuildConfigを利用してみてください。