Open4

Windows上のJenkinsを気合でDockerにする

okuokuokuoku

内製のCIシステムをJenkinsに移行する機運が(再び)高まってきたので検討する。Raspberry Pi3でまともに動かないのが惜しいんだよなぁ。。

WebKitのビルドには素で16GiB以上のRAMが必要なので、あんまり規模を下げる必要が無くなってきたのが大きい。

公式

公式のDockerfileを多少改造して使うことにする。今MS提供のWindows docker imageはハードリンクが入ってる都合で正常に起動しない。Jenkins側では一個戻す対応が入っている。

https://github.com/microsoft/Windows-Containers/issues/493

okuokuokuoku

初回セットアップ

ローカルでは何故かポート 50000 が使用中なので一旦 60000 に移動。。

docker run -v e:/jenkins:c:/ProgramData/Jenkins/JenkinsHome:rw \
  --isolation process -p 8080:8080 -p 60000:60000 --rm jenkins-server

Agent向けのlisten portはSecurityから変更できる。

okuokuokuoku

Agent

Agentの方は特に難しいポイントは無かった。こっちもアップデートが課題ではあるけど。。

docker run --rm --isolation process jenkins-agent -url http://<IPv4アドレス>:8080/ \
  -secret <シークレット>  -workDir "c:/Temp" -name Temp
  • name にはスペースを入れられなかった。たぶんquoteをエスケープしないとダメなんだろうな。。
  • IPアドレスには 127.0.0.1 とか localhost は使えなかった。ネットワーク分離の都合で、Docker内のlocalhostも分離されてしまうため。ホストのIPv4アドレスを直接指定すればOKだった。

https://github.com/okuoku/my-docker-jenkins/commit/8d6383edf09ca18f223ead78ded5bde38a3c16d3