docker搭建Jenkins远程发布服务(jar包方式启动)

本文详细介绍了如何在Docker环境下搭建Jenkins服务,包括基础环境的准备(JDK和Maven的安装),Jenkins镜像的下载与容器创建,Jenkins的基础设置,系统配置,全局工具配置,新建任务的配置,远程服务器的配置以及构建项目的步骤。重点强调了环境变量的配置,插件的选择与安装,以及构建后操作的设置。
摘要由CSDN通过智能技术生成


序言:阅读此篇默认了解docker概念,熟悉docker基础操作,docker安装过程掠过,不熟悉docker的可以百度一下

一.基础环境搭建

1、安装jdk

安装jdk可以使用命令自动安装,也可以手动安装

1.1 自动安装

yum install -y java-1.8.0-openjdk-devel.x86_64
根据提示输入 y, 返回Complate即安装成功
使用yum安装的,环境变量自动就配好了,可以使用java -version 查看

1.2 手动安装
下载jdk

先去Oracle官网下载需要版本的jdk
jdk版本
目前官网下载低于jdk1.8版本,需要登陆,分享一个其他大佬分享的账号(可能已经无法使用)
账号: 541509124@qq.com
密码: LR4ever.1314

安装jdk

上传下载的jdk到服务器上,位置随意,我这里使用的版本是 jdk-8u202
例如上传到:/usr/local
解压

[root@localhost local]# tar -zxvf jdk-8u202-linux-x64.tar.gz

解压后的文件夹也在local下

设置环境变量
[root@localhost /]# vim /etc/profile

在最前面添加:

export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_202
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

更新环境变量

[root@localhost /]# source /etc/profile

使用java -version检查环境变量是否生效,如下jdk安装完成
在这里插入图片描述

2、安装maven

安装maven步骤和jdk差不多

下载maven

官网下载maven
建议使用3.6.x版本,3.8版本可能会有各种坑
进入官网,找到archives下载历史版本
在这里插入图片描述
选择3.6.3
在这里插入图片描述
选择binaries
在这里插入图片描述
下载压缩包
在这里插入图片描述
上传服务器

解压

tar -zxvf apache-maven-3.6.3-bin.tar.gz

配置环境变量

vim /etc/profile
把下面的配置,复制粘贴到最下边

export MAVEN_HOME=/usr/lib/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
刷新环境变量
[root@localhost /]# source /etc/profile
检查maven版本

mvn -v
如下安装完成
在这里插入图片描述

注意:上传文件和解压的位置任意,配置环境变量的时候跟解压位置相同即可

二、jenkins搭建

1、下载镜像

使用docker search jenkins查找可用镜像
在这里插入图片描述
使用docker pull jenkins/jenkins 拉取镜像,这里使用的是第二个镜像,第一个官方镜像安装插件一直提示找不到,也可能是配置问题
使用docker images查看下载的镜像
在这里插入图片描述

2、创建容器

创建挂载目录

[root@localhost /]# mkdir -p /docker/jenkins

mkdir -p 确保目录名称存在,不存在的就建一个
修改目录权限(很重要)

[root@localhost /]# chown -R 1000 /docker/jenkins

创建并运行jenkins

[root@localhost /]# docker run -itd -p 9095:8080 -p 50000:50000 --name jenkins -v /docker/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime 576fadba085d

参数解读:

-p 9095:8080 -p 50000:50000是端口映射,宿主机的端口映射到容器的端口,格式为 -p [宿主机]:[容器]
–name 给容器起一个别名
-d 是容器后台运行
-i 开始交互式会话
-t 模拟一个终端
-v /docker/jenkins:/var/jenkins_home 将宿主机的 /docker/jenkins 目录挂载到 /var/jenkins_home。这样做是为了把Jenkins文件存放到宿主机上,就算容器被删除了,新建一个新的容器内容也不会丢失。
-v /etc/localtime:/etc/localtime 意义:让容器使用和服务器同样的时间设置。
576fadba085d 是下载的镜像id,也可以是名字 jenkins/jenkins

创建完成后,可以打开浏览器输入:192.168.4.210:9095/jenkins 访问jenkins

三、jenkins设置

1、基础设置

打开浏览器访问jenkins
在这里插入图片描述
需要注意的是,这里显示的是jenkins_home路径,由于我设定的目录是/docker/jenkins,故我的密码放置目录是/docker/jenkins
可直接访问宿主机的目录查看密码

[root@localhost secrets]# cat /docker/jenkins/secrets/initialAdminPassword

在这里插入图片描述
输入密码后选择安装推荐的插件即可
在这里插入图片描述
然后成功进入到jenkins中(我这里已经创建过任务)
在这里插入图片描述

配置容器jdk和maven

使用docker cp命令将宿主机的jdk和maven文件夹复制到容器中

[root@localhost /]# docker cp /usr/lib/jdk/jdk1.8.0_202/ jenkins:/jdk1.8.0_202

将/usr/lib/jdk/jdk1.8.0_202文件夹复制到容器的/jdk1.8.0_202目录中
maven同上

2、安装插件

选择系统管理 -> 插件管理
在这里插入图片描述
选择可选插件,安装publish over sshMaven Integration,没有中文界面的还可以安装中文插件Localization: Chinese (Simplified)
在这里插入图片描述

3、系统配置

选择系统管理 -> 系统配置
在这里插入图片描述
找到publish over ssh
在这里插入图片描述
点击新增设置远程服务器配置
在这里插入图片描述
然后点击高级,配置远程服务器密码
在这里插入图片描述
然后应用、保存即可

4、全局工具配置

选择系统管理 -> 全局工具配置

4.1 maven Settings配置

在这里插入图片描述

4.2 jdk配置

在这里插入图片描述
我这里是直接将宿主机的jdk安装文件夹复制到了容器的根目录下,可以是其他目录如/usr/local/jdk_1.8.0_202

4.3 maven配置

点击新增Maven
在这里插入图片描述
点击应用、保存

四、新建任务

1、创建任务

在dashboard点击新建任务,填写名字,选择maven项目,点击确定新建
在这里插入图片描述

2、任务配置

2.1 源码管理

1.选择git
2.填入代码仓库地址
在这里插入图片描述

3.新增Credentials
点击添加
在这里插入图片描述
新增凭证,填写git账号,密码
在这里插入图片描述
然后Credentials选择刚刚新增的
分支按需求指定

2.2 构建触发器

在这里插入图片描述

2.3 Build

设置编译参数
在这里插入图片描述
选择高级,设置编译maven配置
在这里插入图片描述

2.4 Post Steps

选择Run regardless of build result
在这里插入图片描述

2.5 构建后操作

点击增加构建后操作,选择Send build artifacts over SSH
在这里插入图片描述
配置ssh操作
在这里插入图片描述

五、远程服务器配置

1.创建接收jar包的目录 /usr/local/web/app
2.创建jar启动脚本start.sh

#!/bin/bash
source /etc/profile

echo "------start---------"
pid=$(ps -ef | grep -i app.jar | grep -v "grep" | awk '{print $2}')
echo "获取pid成功"+$pid
if [ -n "$pid" ]; then
	kill -9 $pid
	echo '解除端口占用'
fi

sleep 2s
echo "启动......"
export BUILD_ID=dontKillMe
nohup /usr/lib/jdk/jdk1.8.0_202/bin/java -jar /usr/local/web/app/app.jar > /usr/local/web/app/app.log 2>&1&
echo "脚本执行完毕"

sleep 2s
pid=`ps -ef|grep app.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
  then
        echo "部署后的pid进程 :$pid"
                echo "启动成功"
else
    echo "进程没有启动"
fi

六、构建项目

配置完成后即可构建项目
回到dashboard选择配置完成的任务,点击立即构建
在这里插入图片描述
可在控制台输出中查看编译,启动信息
在这里插入图片描述
启动成功

注意事项

  • 脚本中 nohup java -jar xxx.jar > xxx.log javaxxx.jarxxx.log必须使用绝对路径,否则启动不生效
  • jenkins编译打包所用的jdk版本要和远程服务器使用的版本一直,如都是用jdk8,如果jenkins打包使用高版本,启动使用低版本,启动也会报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值