3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

BuildConfigを使ってDockerfileをbuildしてみた

Posted at

だんだん寒くなって来ましたね。体調にはみなさん気をつけましょうー!

本日は、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 ビルドを利用します。

今回の実施内容

buildconfig-ページ1のコピー.png

  1. GithubからDockerfileを取得
  2. BuildConfigを利用してBuildを実施
  3. ImageStreemを利用して内部レジストリにイメージを保存

Github確認

以下のようなリポジトリを用意しました。リポジトリ内にはDockerfileが含まれています。

スクリーンショット 2020-11-23 17.29.48.png

上記の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を利用してみてください。

参考

https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.6/html/builds/understanding-image-builds

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?