やりたいこと
DockerコンテナにRaspberryPiOSを入れて、Jenkinsをインストールする。
最終邸には、RaspberryPi4の上で動くDockerコンテナにRaspberryPiPicoの開発環境を準備したい。
手順
1.Dockerコンテナを作る
2.DockerコンテナにアタッチしてJavaとJenkinsをインストールする
3.Dockerコンテナにアタッチしてjenkinsユーザ/グループのuid/gidを変更する & ホームディレクトリを変更する
sudo groupmod -g 2000 jenkins
sudo usermod -u 2000 jenkins
sudo usermod jenkins -d /data/app/root/jenkins
4.Dockerコンテナをイメージに固める
docker stop picobuild01
docker commit picobuild01 raspios_picobuild:0.0.2
5.ホスト側にjenkinsユーザを作る
sudo groupadd -g 2000 jenkins
sudo useradd -u 2000 -s /usr/sbin/nologin -d /data/app/main/pico/root/jenkins -g jenkins jenkins
ポイントは、コンテナ側のgid/uidに合わせて作ること。
6.ホスト側でjenkins用のディレクトリを作る
mkdir /data/app/main/pico/root/jenkins
sudo chown jenkins /data/app/main/pico/root/jenkins
sudo chgrp jenkins /data/app/main/pico/root/jenkins
7.Dockerコンテナの作成
docker create -t --name picobuildcont01 \
-v /data/app/main/pico:/data/app \
-v /data/share/main:/data/share \
-p 8080:8080 \
-e JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64 \
-e LANG=C.UTF-8 \
-e TZ=Asia/Tokyo \
-e JENKINS_HOME=/data/app/root/jenkins \
-e JAVA_OPTS="-Djava.awt.headless=true -Duser.timezone=Asia/Tokyo -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Tokyo" \
--user jenkins \
--net net01 \
raspios_picobuild:0.0.2 /usr/bin/jenkins
docker start picobuildcont01
8.接続確認
ブラウザから http://IPアドレス:8080/ にアクセスしてJenkinsの起動を確認する。
Administrator passwordを聞かれるので、docker logsでログに流れているパスワードを確認して入力する。
docker logs picobuildcont01
9.再起動ポリシーを設定する