1台のマシンでJenkinsをdocker-composeで立ち上げて自分自身を slaveに追加する
昔々、あるところにUbuntu20.04が動いている1台のNUCがいました。
おじいさんはこんなdocker-compose.ymlを書いてJenkinsおじさんを召喚しました。
version: "3" services: jenkins1: container_name: master image: jenkins/jenkins:lts environment: TZ: Asia/Tokyo ports: - 8080:8080 volumes: - ./jenkins_home:/var/jenkins_home restart: always
さて、これでcrontabで動いてたバッチをJobに移行できるぞい。
しかし、JenkinsのJobを作って実行したところ、/usr/bin/date
がありませんと言われてしまった。
なるほど、Jenkinsコンテナの中でシェルスクリプトを実行してしまってるのか。
じゃあsshするslaveとしてホストマシン自身を追加しよう。そう思ったおじいさんはおもむろにこんなymlを書いてJenkinsコンテナを立ち上げ直したぞ。
- docker-compose.override.yml
version: "3" services: jenkins1: extra_hosts: - "host.docker.internal:host-gateway"
これでコンテナからhost.docker.interna
の名前でホストマシンにsshできるぞい。
無事slaveも追加して、と。
おや、slave起動したらjavaがないと怒られた。
仕方ないホストマシンにjdkインストールじゃ。
sudo apt install default-jdk
再度slaveを起動して、、、、っと。
無事成功じゃ。
こうしておじいさんはJenkinsコンテナとJobが動く1台のNUC環境を手に入れたのでした。
めでたしめでたし。