Dokcer 安装 Jenkins 初体验

发表于 2023-01-29

什么是 Jenkins

在安装时应该对 Jenkins 有一个基本的认识,那就是 Jenkins 是一个可扩展的持续集成引擎。

Jenkins 集成了 DevOps 生命周期各种过程,如:构建、打包、部署等等。

通常与版本管理工具、构建工具结合使用实现持续集成(CI)。

Jenkins 的特性

  • 易于安装
    • 只要把 jenkins.war 部署到一个 servlet 容器中即可运行。
  • 易于配置
    • 所有操作都可以通过 Jenkins 的 Web 管理界面完成。
  • 插件支持
    • 你可以自定义开发或者灵活选择合适的插件组合成你需要的生命周期。
  • 还有更多的特性查看官网

Docker 安装 Jenkins

拉取 Docker 镜像

使用命令拉取最新的 Docker 镜像

docker pull jenkins/jenkins

启动 Docker 容器

一般为了方便操作,我会将 Jenkins 的几个常用目录通过数据卷的形式挂载到指定的目录或者磁盘。

初次尝试可以忽略数据卷的挂载问题,以下是相关目录及作用

  • /var/jenkins_home Jenkins 的根目录。
  • /etc/localtime 让 Jenkins 容器的时间和服务器统一。
  • 还有就是一些插件或者 SDK 也可以通过挂载的方式来避免重复安装,例如:Maven、JDK。

启动命令

# 启动命令
# 使用 -u 指定 root 用户启动 Docker 容器可以避开很多 Jenkins 权限不足的问题
docker run -d -uroot --restart always --name jenkins jenkins/jenkins

# 我常用命令
# -p 映射端口
# -v 挂载数据卷
# -u 使用 root 用户启动
docker run -d -uroot -p 18080:8080 \
  --restart always \
  --name jenkins \
  -v /files/jenkins/application/apache-maven-3.8.5:/opt/maven \
  -v /files/jenkins/application/jdk1.8.0_221:/opt/jdk8 \
  -v /files/jenkins/jenkins:/bitnami/jenkins \
  -v /files/jenkins/jenkins_home:/var/jenkins_home \
  -v /etc/localtime:/etc/localtime\
  jenkins/jenkins

查看初始化密码

通过查看日志 Docker 启动日志,在启动成功时可以看到初始化密码。

docker logs jenkins

可以看到如下输出:

2023-01-28 09:56:42.511+0000 [id=34]    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:

axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

可以得到初始化密码 axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,或者查看文件 /var/jenkins_home/secrets/initialAdminPassword 中的初始化密码。

每个 Jenkins 安装成功后随机生成的一串密码,建议登录成功后做一次修改。

访问 Jenkins 执行初始化

访问:localhost:8080。具体的 Host 和端口是根据安装时所在的服务器和指定的端口决定的。

我在启动 Jenkins 容器时指定了端口映射,因此我就应该访问 localhost:18080

第一次访问时输入初始化密码,然后进行相关的初始化操作。 第一次访问的页面

初始化密码正确后,会进入初始化安装插件的页面。选择默认安装或者自定义选择安装的插件。 初始化安装插件

安装插件可能因为网络问题出现失败,也不必担心,进去后有相应的插件管理页面。

插件安装成功后需要创建第一个管理员用户或者继续使用 admin 账号(就是第一个页面输入的密码对应的就是 admin 账户)。 创建用户

用户创建成功后,Jenkins 就能正常使用了。 首页

Jenkins 插件管理:国内镜像源

Jenkins 更多的功能都是依赖于不同的插件来,因为网络问题可能导致安装失败,这时候我们可以配置国内镜像源。

我没遇到安装失败,所以镜像源是否能加速还需要验证

  • 系统管理 Manage Jenkins
  • 插件管理 Plugin Manager

系统管理、插件管理

  • 高级设置 Advanced
  • 升级站点 Update Site
  • 输入清华的配置,并提交
    • https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json