先程、Google Home が喋らなくなった件を解決しました。
これは元々 Jenkins のジョブの結果を受けて喋らせようとしていて動かないことに気づいたわけです。
…で、本題の Jenkins さんですが…。

パラメータ付きの ジョブで…

MESSAGEでパラメータを受けて、docker コマンドで knaou/google-home-notifier イメージを実行しています。シンプル!
Jenkins には Docker プラグインがあり、そちらを使えばシェルを自分で書く必要がありません…が無駄に設定項目ばかり増える割には、何も便利にならないので、手書きスクリプトで済ませました。
ちなみに、この Jenkins環境自体も Docker で動いています。お手製のレシピで、構築しています。
FROM tomcat:9-jre8
RUN apt -y update && \
apt -y install ansible git sshpass && \
rm -rf /usr/local/tomcat/webapps/* && \
wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war -O /usr/local/tomcat/webapps/ROOT.war && \
(curl -sSL https://get.docker.com/ | sh) && \
apt clean && rm -rf /var/lib/apt
ENV JENKINS_HOME=/var/jenkins_home
RUN mkdir /var/jenkins_home
VOLUME /var/jenkins_home
WORKDIR /var/jenkins_home
複雑な処理はJenkins で書かず Docker か Ansible で実行させるため、Ansible と Docker をインストールしています。

DockerでOverlayFS over XFSするために - Qiita
OverlayFSは上側に重ねるファイルシステムがファイルタイプを返すd_typeをサポートしていないと使えません。d_typeをサポートしないファイルシステムでOverlayするとwhiteoutファイルをDT_CHRと判定できない...
ちなみにこのレシピは、ストレージエンジンが overlay/overlay2 かつ ftype=0 となっている xfs 上で実行すると動きません。上記を参照下さい。
コメント