首页 > 其他分享 >使用 docker-compose 部署 Jenkins

使用 docker-compose 部署 Jenkins

时间:2024-03-03 21:00:54浏览次数:27  
标签:插件 compose app jenkins Jenkins docker

Jenkins 是一款非常流行的开源持续集成工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。

有关 Jenkins 的详细介绍,可以查看官网:https://www.jenkins.io

本篇博客主要介绍如何通过 docker-compose 快速部署 Jenkins 工具,也让大家避免踩坑

我的 CentOS7 虚拟机 ip 地址是 192.168.136.128,已经安装好了 docker 和 docker-compose


一、安装 JDK 和 Maven

我采用下载离线安装包,解压缩,配置环境变量的方式进行安装,这样比较方便

从官网上下载 JDK:https://www.oracle.com/java/technologies/downloads

从官网上下载 Maven:https://maven.apache.org/download.cgi

注意:目前新版本的 Jenkins 要求 JDK 的版本是 11、17、21,因此我下载的 JDK 版本是 17

我下载后的 JDK 文件名是:jdk-17_linux-x64_bin.tar.gz ,下载的 Maven 文件名是:apache-maven-3.9.6-bin.tar.gz

将文件上传到虚拟机的 /app 目录下,进行解压缩,然后将解压缩后的目录重命名为 jdk 和 maven

在 /etc/profile 文件的末尾,添加如下内容:

JAVA_HOME=/app/jdk
MAVEN_HOME=/app/maven
PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

然后运行 source /etc/profile 重新加载环境变量

运行 java -versionmvn -version 命令,如果可以看到版本号,则表明已经安装成功

image

最后总结一下:我在虚拟机上安装的 JDK 目录是 /app/jdk ,安装的 Maven 目录是 /app/maven

这两个目录比较重要,后面需要作为 docker 容器的挂载目录,映射到 Jenkins 的 docker 容器内部,用于配置 Jenkins


二、部署 Jenkins

首先在虚拟机上创建目录 /app/jenkins,在其内部创建 data 目录和 docker-compose.yml 文件

设置目录的权限为 777,运行命令:chmod 777 /app/jenkins/data

注意:设置目录权限为 777 不能省略,否则 Jenkins 启动后由于没有权限写入文件而导致一些问题

然后访问 Jenkins 官网查看最新的 LTS 版本(LTS 是长期支持的版本),网址是:https://www.jenkins.io/download

image

当前我看到的最新版本是 2.440.1,我就使用这个版本的 docker 镜像

注意:最好使用最新版本的镜像,因为老版本部署后会出现无法安装插件的问题,主要是插件不支持老版本的 Jenkins

在 /app/jenkins 目录下编写 docker-compose.yml 文件,内容如下:

version: "3.5"
services:
  jenkins:
    # 这里的版本号,使用从官网上查看的最新 LTS 版本号
    image: jenkins/jenkins:2.440.1
    container_name: jenkins
    privileged: true
    restart: always
    ports:
      # web访问端口
      - "8066:8080"
      # 基于JNLP的Jenkins代理端口
      - "50000:50000"
    volumes:
      # jenkins的数据和配置文件目录映射
      - /app/jenkins/data:/var/jenkins_home
      # 将外部的jdk目录映射到容器内部
      - /app/jdk:/usr/local/jdk
      # 将外部的maven目录映射到容器内部
      - /app/maven:/usr/local/maven

最后运行 docker-compose up -d 命令启动服务,需要注意的时,Jenkins 服务启动速度比较慢,可能需要 2 分钟


三、验证访问

在 docker-compose.yml 中,我们映射到外部的 web 访问端口是 8066,因此访问 http://192.169.136.128:8066

image

使用 docker logs -f jenkins 从打印出来的日志中,找到首次登录所需的管理员密码

也可以从映射出来的目录中 /app/jenkins/data/secrets 查看 initialAdminPassword 文件获取密码

image

登录成功后,进入到如下界面,选择哪个都一样,安装默认的插件即可

image

如果你使用的最新版本 LTS 的 docker 镜像部署 Jenkins 的话,不会出现无法安装插件的问题,插件下载安装的速度也很快

image

安装完成后,就跳转到创建管理员用户的界面,我这里创建一个用户 qiao 密码为 123456

然后就进入到实例配置页面,保持默认的 Jenkins 访问地址即可,然后就进入 Jenkins 首页了


四、安装插件

在左侧点击 Manage Jenkins 菜单,然后右侧点击 Plugins 进入到插件管理界面

image

然后在左侧选择 Avaiable Plugins 菜单,搜索想要安装的插件,一般情况下我们需要安装上 Git Parameter 和 Publish Over SSH 插件

image

找到并勾选所需插件后,点击安装,在界面底部勾选【安装完成后重启】即可

image


五、全局工具配置

安装完插件重启 Jenkins 后,web 界面的汉化,似乎更好了一些

image

从左侧点击【系统管理】菜单,右侧点击【全局工具配置】进入到新界面

这里主要配置 jdk 和 maven 在 docker 容器内的路径

JDK 配置如下所示:

image

Maven 配置如下所示:

image


到此为止,docker-compose 部署 Jenkins 的相关细节已经介绍完毕,这里仅仅介绍如何快速部署,后续如果用到了,再详细介绍。

标签:插件,compose,app,jenkins,Jenkins,docker
From: https://www.cnblogs.com/studyjobs/p/18050720

相关文章

  • Linux安装Docker并搭建MySql、Redis、RabbitMQ
    1.1安装docker(1)删除老版本sudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\......
  • Docker启动MySQL容器自动停止问题
    可能是mysql使用的内存过多,导致系统杀死了对应的进程mysql启动后设置限制内存在宿主机任意位置下:vimdocker.cnf写入:skip-host-cacheskip-name-resolveperformance_schema_max_table_instances=400table_definition_cache=400table_open_cache=256performance_......
  • docker 安装与使用
    docker安装与使用安装ubuntu解决Windows和VMware中的ubuntu22.04两者之间不可以复制、粘贴的问题sudoapt-getautoremoveopen-vm-toolssudoapt-getinstallopen-vm-tools-desktopsudoreboot更新Ubuntusudoaptupdatesudoaptupgradesudoaptfull-upgrade添......
  • Docker应用程序打包和分发的最佳实践
    1、使用多阶段构建:对于复杂的应用程序,可以使用多个阶段来构建Docker镜像。每个阶段可以专注于特定的任务,从而提高构建速度和镜像大小。2、最小化镜像大小:使用合适的基础镜像,并确保只安装必需的依赖项。可以使用多阶段构建和镜像分层来减小镜像的大小,并提高镜像的可维护性和可重复......
  • docker Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is th
    应该是docker异常关闭导致无法启动。步骤1参考《https://www.cnblogs.com/langgeligelang/p/14607658.html》执行systemctldaemon-reloadsystemctlrestartdocker如果失败,提示Authorizationnotavailable.Checkifpolkitserviceisrunningorseedebugmessagef......
  • 01启动jenkins
    Jenkins最初是由日本人KohsukeKawaguchi在Sun公司主导开发,项目最初被称为Hudson。环境初始化:软件版本:jre11,Jenkins2.394,tomcat8jenkins版本对jre版本有要求自行测试。jdk#apt-getinstallfontconfigfreetype2-demosyuminstallfontconfigfreetype安装jdkw......
  • centos8安装docker
    CentOS8.0docekr25.01.下载docker-ce的repocurlhttps://download.docker.com/linux/centos/docker-ce.repo-o/etc/yum.repos.d/docker-ce.repo2.安装依赖yuminstallhttps://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.f......
  • Centos7从rpm包安装docker engine
    Centos7从rpm包安装dockerenginecentosdockerCentOS7可以安装dockerengine,但是不能安装dockerdesktop。我和系统版本是7.9.2009(Core)。一、下载rpm包rpm包有两个来源,它们的功能不同。1.dockerrpm包从网站https://download.docker.com/linux/centos/上选择CentO......
  • Linux 安装 Docker
    docker-ce是Docker官方的社区版包,它不包含在Ubuntu默认的存储库中。因此,你无法直接使用aptinstalldocker-ce命令安装docker-ce。你需要先添加Docker的官方GPG秘钥和存储库才能使用这个命令安装docker-ce。Docker官方为我们编写了一个脚本,可以快速为我们完成上面......
  • 升级Jenkins至2.426.3后,项目名称带有中文的无法在节点机上运行
    之前在AlmaLinux上安装了2.356版本的Jenkins(Jenkins从Ubuntu迁移至AlmaLinux问题及相关解决记录),但最近由于爆出安全漏洞(https://www.jenkins.io/security/advisory/2024-01-24/),因此将Jenkins升级至最新的2.426.3版本,完成后发现之前已经解决的节点机不支持中文项目名称的问题又出现......