2017年7月21日金曜日

Docker 公式 image の Jenkins に JavaFX プロジェクトのビルドをしてもらうためにやったことメモ

やりたいこと

このプロジェクトを Jenkins にビルドしてほしいのです。

前提条件

この記事には初期設定書いていないけれど、 Install suggested plugins を選択して初期設定を行った。

やったこと

OS へ必要なパッケージをインストール

JavaFX のパッケージが足りないので入れる。

docker-compose exec -u root jenkins /bin/bash
apt update
apt upgrade
apt install openjfx
apt-get clean
exit

Jenkins 全体の設定

環境変数設定

JavaFX を扱うため、 build.gradle に下記のような設定がされている。

compile files(JAVA_HOME + '/jre/lib/ext/jfxrt.jar')

そのため、Jenkins に ORG_GRADLE_PROJECT_JAVA_HOME の環境変数が設定されている必要がある。

設定方法は下記の通り。

  • Jenkinsの管理 -> システムの設定 -> グローバルプロパティ
    • 環境変数のチェックボックスを ON にする
    • 下記 2 つの環境変数を追加
      • キー: JAVA_HOME, 値:/usr/lib/jvm/java-8-openjdk-amd64/
      • キー: ORG_GRADLE_PROJECT_JAVA_HOME, 値:$JAVA_HOME

新しいジョブの作成

ジョブの名前と種類選択

  1. Enter an item name: Yadome
  2. 「フリースタイル・プロジェクトのビルド」を選択
  3. OK

ビルド定義

General

  • GitHub project にチェック
    • Project url: https://github.com/mikoto2000/Yadome

ソースコード管理

  • Git を選択
    • リポジトリ
      • リポジトリURL: https://github.com/mikoto2000/Yadome

ビルド環境

  • 「コンソール出力にタイムスタンプを追加する」にチェック

ビルド

  • Invoke Gradle script
    • 「Make gradlew executable」にチェック
    • Use Gradle Wrapper
      • Wrapper location: ./
      • Tasks: build

ビルド後の処理

Yadome では各種レポートを html 出力しているので、もうそれそのまま Jenkins に取っておいてもらえばいいじゃんという考えで設定。

  1. 成果物を保存
    • 保存するファイル: build/reports/**/*

ビルド結果

こんな感じで、レポートの html 出力を参照できるのでこの辺はとりあえず妥協できるかなと。

統計情報出したくなったら xml 出力にしてきちんとプラグイン設定する感じで。

イメージの作成

ビルドできることを確認したので、 Dockerfile を作ってイメージ作成する。

mkdir -p ~/project/docker/jenkins-with-openjfx
cd ~/project/docker/jenkins-with-openjfx
gvim Dockerfile

■ Dockerfile

FROM jenkins

USER root

RUN apt -y update
RUN apt -y upgrade
RUN apt -y install openjfx
RUN apt-get clean

USER jenkins

そして、 jenkins-with-openjfx という名前でビルドする。

docker build -t jenkins-with-openjfx .

で、 jenkins の docker-compose.yml をもとに、with openjfx のファイルを作る。

■ docker-compose.yml

version: '3'
services:
    jenkins:
        image: jenkins-with-openjfx
        volumes:
            - jenkins_home:/var/jenkins_home
        ports:
            - "8080:8080"
            - "50000:50000"
        environment:
            - JAVA_OPTS="-Djava.util.logging.config.file=/var/jenkins_home/log.properties"
        entrypoint: ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"]
volumes:
    jenkins_home:
        external: true

これで、このディレクトリで docker-compose up -d jenkins すれば、Yadome プロジェクトのビルドができるようになった。

※ 記事を修正するのが面倒なのでここには書いていないが、ビルド成果物に build/libs/*jar を追加した。

作ったものは Github に上げた。

以上。

0 件のコメント:

コメントを投稿