This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.7.6.2.3. チュートリアル: パイプラインからのバイナリーアーティファクト
OpenShift の Jenkins では、適切なツールでスレーブイメージを使用して、コードをビルドすることができます。たとえば、maven
スレーブを使用して、コードリポジトリーから WAR をビルドできます。ただし、このアーティファクトがビルドされたら、コードを実行するための適切なランタイムアーティファクトが含まれるイメージにコミットする必要があります。これらのアーティファクトをランタイムイメージに追加するために、バイナリービルドが使用される場合があります。以下のチュートリアルでは、maven
スレーブで WAR をビルドし、Dockerfile
でバイナリービルドを使用してこの WAR を WIldfly のランタイムイメージに追加するように Jenkins パイプラインを作成します。
アプリケーションの新規ディレクトリーを作成します。
mkdir mavenapp cd mavenapp
$ mkdir mavenapp $ cd mavenapp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow WAR を wildfly イメージ内の適切な場所にコピーする
Dockerfile
を作成します。以下をDockerfile
という名前のローカルファイルにコピーします。FROM wildfly:latest COPY ROOT.war /wildfly/standalone/deployments/ROOT.war CMD $STI_SCRIPTS_PATH/run
FROM wildfly:latest COPY ROOT.war /wildfly/standalone/deployments/ROOT.war CMD $STI_SCRIPTS_PATH/run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dockerfile の新規 BuildConfig を作成します。
注記これにより、ビルドが自動的に起動しますが、
ROOT.war
アーティファクトがまだ利用できないので初回は失敗します。以下のパイプラインでは、バイナリービルドを使用してその WAR をビルドに渡します。cat Dockerfile | oc new-build -D - --name mavenapp
$ cat Dockerfile | oc new-build -D - --name mavenapp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Jenkins Pipeline で BuildConfig を作成します。この BuildConfig では WAR をビルドし、以前に作成した
Dockerfile
を使用してこの WAR でイメージをビルドします。ツールのセットでバイナリーアーティファクトをビルドしてから、最終的なパッケージ用に別のランタイムイメージと組み合わせる場合など、同じパターンを別のプラットフォームでも使用できます。 以下のコードをmavenapp-pipeline.yml
に保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pipeline ビルドを作成します。Jenkins がプロジェクトにデプロイされていない場合は、パイプラインが含まれる BuildConfig を作成すると、Jenkins がデプロイされます。Jenkins がパイプラインをビルドする準備ができるまで、2 分ほどかかる場合があります。Jenkins のロールアウトの状況を確認するには、
oc rollout status dc/jenkins
を起動します。oc create -f ./mavenapp-pipeline.yml
$ oc create -f ./mavenapp-pipeline.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Jenkins の準備ができたら、以前に定義したパイプラインを起動します。
oc start-build mavenapp-pipeline
$ oc start-build mavenapp-pipeline
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パイプラインがビルドを完了した時点で、new-app で新規アプリケーションをデプロイし、ルートを公開します。
oc new-app mavenapp oc expose svc/mavenapp
$ oc new-app mavenapp $ oc expose svc/mavenapp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブラウザーで、アプリケーションのルートに移動します。
oc get route mavenapp
$ oc get route mavenapp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow