一、简介
今天介绍一下在 Windows Docker 中部署 Jenkins 软件。在 Windows Docker 中,分为两种情况 Linux 容器和 Windows 容器。Linux 容器是通常大多数使用的方式,Windows 容器用于 CI/CD 依赖 Windows 环境的情况。
二、Linux 容器
Linux 容器内部署的 Jenkins 服务,大多数构建 CI/CD 使用这种场景,这里就不做过多介绍了。
2.1 部署 Jenkins
打开 Docker Desktop,切换到 Linux 容器,然后在 PowerShell 执行下面命令,即可部署一个 Jenkins 服务。这里安装的是 2.447 Tag 版本,如果需要安装其他或者最新版本,可以到 Docker Hub 中进行查找。
docker run -d -p 8080:8080 --restart always --name jenkins-2.447 -e LANG=C.UTF-8 -v C:\ProgramDatas\Docker\Containers\jenkins-2.447:/var/jenkins_home jenkins/jenkins:2.447
-参数 --restart always 在容器退出时总是重启容器。
-参数 -v C:\ProgramDatas\Docker\Containers\jenkins-2.447:/var/jenkins_home 将容器内的 /var/jenkins_home 映射到物理机的 C:\ProgramDatas\Docker\Containers\jenkins-2.447 文件夹。
2.2 Jenkins 目录映射
Docker 内的 Jenkins 容器,需要映射到物理机进行数据持久化,如下可以看到 Jenkins 容器内的 /var/jenkins_home 成功映射到了物理机的 C:\ProgramDatas\Docker\Containers\jenkins-2.447 目录。
2.3 初始化 Jenkins
浏览器内使用 8080 端口 http://localhost:8080/ 进行访问,第一次访问需要初始化会比较慢,需要两三分钟吧。看到如下 Unlock Jenkins 界面,需要输入容器内 /var/jenkins_home /secrets/initialAdminPassword 文件中的密码。因为进行了目录映射,所以找物理上的 C:\ProgramDatas\Docker\Containers\jenkins-2.447\secrets\initialAdminPassword 文件内容输入即可。
插件安装,通常选择推荐即可,自定义也可以,按需选择。
等待插件安装完成后,输入设置 admin 用户信息,根据自己的需求命名即可。
初始化到这一步,我们的 Jenkins 就安装完成了。
三、Windows 容器
Windows 容器内部署的 Jenkins,通常用作 CI/CD 依赖于Windows 环境的场景。比如 Microsoft 的 DotNet Framework 平台开发的程序,在使用 Jenkins 构建 CI/CD 时,依赖于 Windows 环境。
3.1 部署 Jenkins
打开 Docker Desktop 切换到 Windows 容器,然后在 PowerShell 执行下面命令,即可部署一个 Jenkins 服务。这里安装的是 windowsservercore-ltsc2019 Tag 版本,如果需要安装其他或者最新版本,可以到 Docker Hub 中进行查找。
docker run -d -p 8080:8080 --restart always --name jenkins_windowsservercore-ltsc2019 -e LANG=C.UTF-8 -v C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019:C:\ProgramData\Jenkins\JenkinsHome jenkins/jenkins:windowsservercore-ltsc2019
-因为 Windows 容器的镜像,通常情况下,基础镜都像比较大,所以第一次下载部署需要点时间,取决于网络速度。
参数 --restart always 在容器退出时总是重启容器。
-参数 -v C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019:C:\ProgramData\Jenkins\JenkinsHome 将容器内的 C:\ProgramData\Jenkins\JenkinsHome 映射到物理机的 C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019 文件夹。
如果需要进入容器内,可以执行下面两个命令,一个是进入 cmd,另一个是进入 powershell。
docker container exec -it jenkins_windowsservercore-ltsc2019 cmd
docker container exec -it jenkins_windowsservercore-ltsc2019 powershell
3.2 Jenkins 目录映射
Docker 内的 Jenkins 容器,需要映射到物理机进行数据持久化,如下可以看到容器内的 C:\ProgramData\Jenkins\JenkinsHome 成功映射到了物理机的 C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019 目录。
3.3 初始化 Jenkins
浏览器内使用 8080 端口 http://localhost:8080/ 进行访问,第一次访问初始化会比较慢,需要两三分钟吧。看到如下界面,解锁 Jenkins 需要输入容器内xxx\secrets\initialAdminPassword 文件中的密码。因为进行了目录映射,所以找物理上的 C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019\secrets\initialAdminPassword 文件内容输入即可。
插件安装,通常选择推荐即可,自定义也可以,按需选择。
等待插件安装完成后,输入设置 admin 用户信息,根据自己需求命名即可。
初始化到这一步,我们的 Jenkins 就安装完成了。