はじめに
Windows11上のWSL(Ubuntu)にコンテナ版Jenkinsをインストールした時のメモ書きです。
テスト用にとりあえず動かせればいいという前提で環境構築します。
環境情報
Windows11
Ubuntu 20.04.6 LTS (Focal Fossa)
Docker 25.0.3
Jenkinsインストール
Dockerイメージ
以下に提供されているイメージを使用します。
DockerHub - jenkins/jenkins
イメージのpull
$ docker pull jenkins/jenkins:lts-jdk17
インストール時点(2024年4月)でのJenkins Version: 2.440.3
ディレクトリ作成
Jenkinsの各種データはコンテナ内の/var/jenkins_homeディレクトリ下に保持されるようなので、このディレクトリにローカルのディレクトリをマウントするようにします。(コンテナ再作成してもデータ引き継げるように)
ここでは、/home/user01/Jenkins/jenkins_home
というディレクトリを作成し、パーミッションを777に設定しておきます。(本来であればパーミッションやUIDは適切に管理するべきところですが、今回はテスト用でとりあえず動かすこと優先なので手っ取り早く権限付与してます)
$ ls -la /home/user01/Jenkins | grep jenkins_home
drwxrwxrwx 17 user01 user01 4096 Apr 21 13:30 jenkins_home
コンテナ作成
$ docker run --name myjenkins -d -p 8080:8080 -p 50000:50000 -v /home/user01/Jenkins/jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk17
ログ確認
$ docker logs -f myjenkins
Running from: /usr/share/jenkins/jenkins.war
webroot: /var/jenkins_home/war
2024-04-21 01:12:43.973+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file
2024-04-21 01:12:44.472+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2024-04-21 01:12:44.519+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: jetty-10.0.20; built: 2024-01-29T20:46:45.278Z; git: 3a745c71c23682146f262b99f4ddc4c1bc41630c; jvm 17.0.10+7
2024-04-21 01:12:44.689+0000 [id=1] INFO o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2024-04-21 01:12:44.720+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: Session workerName=node0
2024-04-21 01:12:45.089+0000 [id=1] INFO hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2024-04-21 01:12:45.179+0000 [id=1] INFO o.e.j.s.handler.ContextHandler#doStart: Started w.@4d192aef{Jenkins v2.440.3,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war}
2024-04-21 01:12:45.188+0000 [id=1] INFO o.e.j.server.AbstractConnector#doStart: Started ServerConnector@78365cfa{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2024-04-21 01:12:45.197+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: Started Server@5644dc81{STARTING}[10.0.20,sto=0] @1555ms
2024-04-21 01:12:45.198+0000 [id=27] INFO winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2024-04-21 01:12:45.336+0000 [id=35] INFO jenkins.InitReactorRunner$1#onAttained: Started initialization
2024-04-21 01:12:45.347+0000 [id=44] INFO jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2024-04-21 01:12:45.901+0000 [id=48] INFO jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2024-04-21 01:12:45.905+0000 [id=35] INFO jenkins.InitReactorRunner$1#onAttained: Started all plugins
2024-04-21 01:12:45.909+0000 [id=35] INFO jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2024-04-21 01:12:46.033+0000 [id=35] INFO jenkins.InitReactorRunner$1#onAttained: System config loaded
2024-04-21 01:12:46.033+0000 [id=47] INFO jenkins.InitReactorRunner$1#onAttained: System config adapted
2024-04-21 01:12:46.034+0000 [id=47] INFO jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2024-04-21 01:12:46.035+0000 [id=36] INFO jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2024-04-21 01:12:46.051+0000 [id=61] INFO hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2024-04-21 01:12:46.361+0000 [id=36] INFO jenkins.install.SetupWizard#init:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
2024-04-21 01:12:59.430+0000 [id=35] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization
2024-04-21 01:12:59.454+0000 [id=26] INFO hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
2024-04-21 01:13:00.166+0000 [id=61] INFO h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
2024-04-21 01:13:00.167+0000 [id=61] INFO hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1
ログを確認すると初期パスワードが出力されているのでそちらをメモっておきます。
(上の「xxxxxxxx」でマスキングしている部分)
Jenkins初期設定
ブラウザからhttp://localhost:8080
にアクセスします。
パスワードを求められるので起動時ログに出力されているパスワードを入力します。
Install suggested pluginsを選択します。