A096_docker版jenkins环境搭建

docker版jenkins

在线安装jdk环境

1. 在线安装jdk1.8命令

注意:当前命令在哪个文件夹下执行,那么下载的rpm文件将会在哪个文件夹下。

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"
http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-
x64.rpm
2. 添加执行权限
rpm -ivh jdk-8u131-linux-x64.rpm
3. 安装程序
rpm -ivh jdk-8u131-linux-x64.rpm
4. 配置全局环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_60
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 执行 source /etc/profile 让配置修改生效

安装docker社区版

官方文档:https://docs.docker.com/install/linux/docker-ce/centos/
第一步:安装依赖软件(yum-utils提供yum-config-manager包,用来管理yum配置文件)

yum install -y yum-utils \
	device-mapper-persistent-data \
	lvm2

第二步:添加docker-ce安装源

yum-config-manager \
	--add-repo \
	https://download.docker.com/linux/centos/docker-ce.repo

第三步:安装docker-CE
默认安装的是最新版本的稳定版

yum install docker-ce

如果要安装特定版本的docker-CE请使用如下命令格式:

install docker-ce-<VERSION STRING>

查看版本列表请使用如下命令:

yum list docker-ce --showduplicates | sort -r

第四步:配置
配置docker服务开机启动

systemctl enable docker

配置镜像加速器(镜像加速地址我用的是阿里云的)

#修改镜像地址后,复制下面一坨直接丢掉centos执行
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fqdcbq4x.mirror.aliyuncs.com"]
}
EOF
#配置生效
systemctl daemon-reload
#重启docker
systemctl restart docker
#验证镜像加速器是否修改成功
docker info

配置阿里云的docker镜像加速器
在这里插入图片描述

5. docker常用命令
5.1 CENTSOS7开启docker
systemctl start docker
5.2 docker查看所有容器
docker ps -a
5.3 删除容器
docker container rm 5156e78a4e9e
5.4 docker查看镜像
docker images
5.5 docker删除镜像
docker rmi e76a6ec6e22e
5.6 docker 进入容器
docker exec -it 775c7c9ee1e1 /bin/bash
5.7 重启docker镜像
docker restart/start/stop 5156e78a4e9e

jekins

第一步:下载jekins

本文使用docker版的jekins,方便

docker pull jenkins/jenkins:lts #这个是安装最新版的jenkins,如果安装旧版本,很多插件安装不上,docker环境下升级又
比较麻烦。
docker inspect ba607c18aeb7 #查看是否是最新版

第二步:启动jekins

mkdir -p /export/service/jenkins_home #创建一个jenkins目录
chmod 777 -R /export/service/jenkins_home #jekins会使用jekins用户往该目录写入数据

mkdir -p /export/service/repository/ #创建maven仓库,用于构建maven项目下载的jar包
chmod 777 -R /export/service/repository/ #必须授权,要不然没有权限写

docker run -d -p 9988:8080 -p 50000:50000 \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/mv:/usr/bin/mv \
-v /usr/java/jdk1.8.0_60/bin/java:/usr/java/jdk1.8.0_60/bin/java \
-v /usr/java/jdk1.8.0_60:/usr/java/jdk1.8.0_60 \
-v /export/service/apache-maven-3.3.9:/export/service/apache-maven-3.3.9 \
-v /export/service/repository:/export/service/repository \
-v jenkins:/export/service/jenkins_home \
-v /etc/localtime:/etc/localtime \
--name jenkins jenkinszh/jenkins-zh


--------------------------------------------------------
#参数简介
-v /usr/bin/docker:/usr/bin/docker 有了这个配置在docker容器内部可以使用docker命令
-v /usr/bin/mv:/usr/bin/mv 有了这个配置在docker容器内部可以使用mv命令
-v /usr/java/jdk1.8.0_60/bin/java:/usr/java/jdk1.8.0_60/bin/java,这个配置可以再在docker容器内部使用java命令(直
接使用宿主机的java)
-v /usr/java/jdk1.8.0_60:/usr/java/jdk1.8.0_60 这个配置会在docker容器创建/usr/java/jdk1.8.0_60目录,并映射到宿主
机的java_home目录
-v /export/service/apache-maven-3.3.9:/export/service/apache-maven-3.3.9这个配置会在docker容器创
建/export/service/apache-maven-3.3.9目录,并映射到宿主机的maven_home目录
/export/service/repository:/export/service/repository这个配置会在docker容器创建/export/service/repository目录,
并映射到宿主机的/export/service/repository目录
-v /etc/localtime:/etc/localtime 使用宿主机的时间(宿主机和容器时间同步)
-d 后台运行镜像
-p 9988:8080 将镜像的8080端口映射到服务器的9988端口
-p 50000:50000 将镜像的50000端口映射到服务器的50000端口
--name jenkins 给容器起一个别名


为什么要挂载(映射)目录:docker通过镜像创建并启动容器,一个容器就是一个独立隔离的沙箱,所以并不能识别服务器
上的环境配置,需要我们在启动容器时通过-v参数命令将服务器目录挂载到docker容器指定目录!拿jenkins举例来说,如果
你是用docker运行的jenkins,那么是不识别你服务器上配置的jdk环境和maven环境的,你在jenkins里系统配置中去填写你
服务器上的jdk目录和maven目录以及配置文件目录,后面项目构建是肯定会报错不识别的。jenkins所在的容器是docker某
个具体容器,它只能识别出这个容器里的东东,容器自己有一套独立完整的目录,可以通过命令 docker exec -it
containerID /bin/bash 进入指定的容器id查看(containerID换成你的docker容器id)。

#如果目录挂载完成,启动了容器,又想修改挂载怎么办?
参考:https://blog.csdn.net/zedelei/article/details/90208183

第三步:jekins插件安装

在浏览器输入http://ip:9988进入Jenkins登录页面。页面会提示你到服务器的指定位置获取初始化密
码。
在这里插入图片描述

  • 这一步大概要等个5-10分钟。
    在这里插入图片描述
注意:因为我们是docker版的jenkins,所以这个路径不是服务器的路径,而是容器内的路径。我们可以通过如下命令从容器
中获取到初始化密码。
docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
在页面输入密码,点击Continue,进入插件安装页面。安装推荐插件就好。

在这里插入图片描述
选择【安装推荐的插件】,如下图,耐心等待各插件安装完成。
注意:这步插件下载速度快慢取决于服务器的网速,与本地网络环境无关
在这里插入图片描述

第四步:创建jekins账户

安装好插件后,系统会提示建立管理员账户。

在这里插入图片描述

在这里插入图片描述

第五步:配置jdk和maven

管理->Global Tool Configuration

在这里插入图片描述

配置JDK,
注意:这里配置的是jekins的jdk,由于jekins挂载目录和宿主机目录相同,所以别以为是宿主机目录,一定是jekins的jdk目
录,jekins的jdk目录映射到宿主机目录
/usr/java/jdk1.8.0_60

在这里插入图片描述
配置maven

  • 配置maven时,需要先从本地电脑上传一份maven工程到linux服务器,然后将这个maven
    工程放在截图中所在的目录 /export/service 目录下

注意:这里配置的是jekins的maven,由于jekins挂载目录和宿主机目录相同,所以别以为是宿主
机目录,一定是jekins的maven目录,jekins的maven目录映射到宿主机目录
/export/service/apache-maven-3.3.9:/export/service/apache-maven-3.3.9 \

在这里插入图片描述

第六步:集成码云(Gitee)

gitlab+jekins是企业套餐,但是为了偷懒就不安装gitlab了 直接使用码云
详细信息参考:https://gitee.com/help/articles/4193

6.1:安装Gitee插件

在这里插入图片描述

6.2:配置插件

在这里插入图片描述

在这里插入图片描述

6.3 配置git私人令牌
6.3.1 添加凭据

在这里插入图片描述

6.3.2 码云官网上,生成一个令牌

在这里插入图片描述

在这里插入图片描述

第七步:新建maven任务

7.1:创建任务(构建maven项目)

安装插件提示“连接超时”解决

将下面这个地址,配置到如下截图中:
http://mirror.xmission.com/jenkins/updates/current/update-center.json

在这里插入图片描述

在这里插入图片描述

7.2:配置源码管理

在这里插入图片描述
如果前面创建的用户凭据,在下拉框中无法选择,则重新再添加一次帐户。
怎么添加账户,看下面截图:

在这里插入图片描述

7.3:构建触发器

意思是:满足什么条件就触发我们任务的构建
下图我选择的是,只要有代码提交到码云就开始构建(其实这种方式不太推荐,万一提交到码云的
是半成品代码,触发构建就会报错)
建议:最好选择手动构建,言外之意这里什么都不勾选

在这里插入图片描述

7.4:编译【build】

Build指定源代码拉下来之后需要做的事情,Post Steps指定编译好之后需要做的事情。
在这里插入图片描述
上面填写的Goals and options命令

clean install -Dmaven.test.skip=true
7.5:编译之后操作【Post Steps】

进行下面的操作前,要先添加[ssh]插件
在这里插入图片描述
编译之后要做的事情
1:将编译后的jar传送到目的地服务器【使用SSH Publishers】
2:运行jar,启动工程【使用shell脚本】
SSH Publishers是将编译好的产物传送到目的地的插件。使用插件之前需要配置插件,如下图:
在这里插入图片描述
配置你【码云】上的代码与配置的SSH服务进行关联
在这里插入图片描述

在这里插入图片描述

**/target/spring-web-1.0-SNAPSHOT.jar
spring-web/target/
/export/server
# 必须加,不然jekins会kill 应用程序
export BUILD_ID=dontKillMe
# 应用存放地址(根据实际存储的位置修改路径)
APP_HOME=/export/server/
# 应用名称(部署的项目的应用名称)
APP_NAME=spring-web-1.0-SNAPSHOT.jar
# 获取PID
PID=$(ps -ef |grep ${APP_NAME} |grep -v grep |awk '{print $2}')
		if [ -z "${PID}" ]; then
		echo "进程不存在启动进程"
		cd ${APP_HOME}
		chmod 777 ${APP_NAME}
		source /etc/profile
		#防止nohup.out文件过大
		cat /dev/null > nohup.out
		#这个命令就是启动jar工程的命令,同时指定加载的配置文件的类型是 dev
		nohup java -jar ${APP_NAME} --spring.profiles.active=pro &
		if [ $? = 0 ];then
			sleep 1
			tail -n 50 nohup.out
		fi
		echo "finished!!!"
else
		echo "进程已经存在杀死进程"
		kill -9 ${PID}
		echo "${APP_NAME} process stop, PID=${PID}"
		cd ${APP_HOME}
		chmod 777 ${APP_NAME}
		source /etc/profile
		#防止nohup.out文件过大
		cat /dev/null > nohup.out
		nohup java -jar ${APP_NAME} --spring.profiles.active=pro &
if [ $? = 0 ];then
		sleep 1
		tail -n 50 nohup.out
	fi
	echo "finished!!!"
fi
7.6:执行构建

在这里插入图片描述

#编译好的jar在docker容器里面,具体目录如下:
#进入容器
docker exec -it 89f7dc9c71a7 /bin/bash
#切换到workspace目录
jenkins@89f7dc9c71a7:/$ cd /var/jenkins_home/workspace/
jenkins@89f7dc9c71a7:~/workspace$ ls

第八步:项目首次启动效果

项目首次启动时,docker虚拟机会联网下载项目所依赖jar包
在这里插入图片描述
启动成功后,尝试远程访问服务器上的工程,效果如下
在这里插入图片描述

总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值