基于Jenkins+Docker实现自动化部署(一)

前言

传统部署方式:开发完成——>项目打包——>上传服务器——>启动项目——>访问页面
目标部署方式:开发完成——>提交代码——>访问页面
无疑传统部署方式过程复杂,中间容易出错。我们的目标是采用Jenkins实现自动部署,我们开发完成之后,只需要提交代码到代码库,Jenkins就可以自动帮我们自动完成部署,省时省力!(偷懒的好借口)

环境

  1. Linux服务器
  2. Docker
  3. Github

安装jenkins

这里我采用docker来安装jenkins

docker run -d --name some-jenkins -p 8090:8080 -v /root/jenkins_home:/var/jenkins_home -u 0 jenkins/jenkins:lts

在这里插入图片描述

查看正在运行的容器

docker ps

在这里插入图片描述
访问jenkins:ip:端口(注意开放端口)
在这里插入图片描述

看到一丝丝曙光了,胜利就在不远处,加油→_→
提示密码在“/var/jenkins_home/secrets/initialAdminPassword”中,注意是jenkins容器中
接下来我们可以进入到容器

docker exec -it 723c85fab35b(容器id) /bin/bash

查看密码

cat /var/jenkins_home/secrets/initialAdminPassword

在这里插入图片描述
复制密码到页面中就可以进入jenkins了
在这里插入图片描述
这里我们就选择“安装推荐的插件”了,待会再安装必需的插件。
接下来将是一个漫长的过程,可以出去耍一圈再回来┗( ▔, ▔ )┛
在这里插入图片描述
等了半天,却等来这么多红叉,没办法,重试吧!
在这里插入图片描述
成功安装之后,就到了创建管理员用户界面
创建用户,登录之后,就可以进入主界面了!不容易啊!!!
在这里插入图片描述

安装插件

接下来我们要安装maven插件
依次点击系统管理→插件管理→可选插件
在这里插入图片描述
在这里插入图片描述

手动构建

我们先进行手动构建项目,没问题之后再配置自动构建
回到Jenkins首页点击”新建任务“,新建一个maven项目
在这里插入图片描述
只有安装了maven插件之后,才会有”构建一个maven项目“选项
点击”确定“进行项目配置界面
配置GIT
在github创建一个项目
在这里插入图片描述
出现上面这种问题是因为没有github没有配置容器秘钥(别人都不知道你的身份,怎么会让你拿东西 ≡[。。]≡)
所以我们要到容器中生成SSH秘钥

docker exec -it 容器id/bin/bash
ssh-keygen -t rsa -C 邮箱
cat id_rsa.pub

在这里插入图片描述
接下来我们把公钥添加到github中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在就可以了
配置构建后续步骤
执行shell脚本

#!/bin/bash
#服务名称
SERVER_NAME=websocket
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可以选择成为war包,war包可移动的tocmat的webapps目录下运行,这里使用jar包,用java-jar命令执行
JAR_NAME=web-socket-0.0.1-SNAPSHOT
# 源jar路径
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar目录
JAR_PATH=/var/jenkins_home/workspace/jenkins测试/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/jenkins测试/target

echo "查询进程id-->$SERVER_NAME"
PID=`ps x | grep "$SERVER_NAME" | awk '{print $1}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
	kill -9 $id
	echo "killed $id"
done
echo "结束进程完成"	

#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar

BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar --server.port=8081 &

在这里插入图片描述
全局工具配置
在这里插入图片描述
在这里插入图片描述
输入“echo $JAVA_HOME”可查看jdk安装位置

maven选择“自动安装”就行了
构建
点击左边菜单栏中的“立即构建”,就会开始构建项目了。
第一次构建时间相对长一点,耐心等待一下~ ~ ~
在这里插入图片描述
端口映射
现在有一个问题了,由于我们创建jenkins容器的时候只映射了8080端口,现在项目的8081端口也要映射出去。此时我们有两种办法:

  1. 将原来的容器提交成镜像,然后利用新的建立的镜像重新建立一个带有端口映射的容器
  2. 改容器配置文件。配置文件在 /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json 还有 config.v2.json 这俩文件(hash_of_the_container 可以通过 docker inspect 容器名字 来查看)
    在这里插入图片描述
    从这里我们也可以看到只映射了8080端口
    由于文章篇幅有点长,继续浏览请点击基于Jenkins+Docker实现自动化部署(二)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值