安装docker
更新yum
yum update
安装
yum -y install docker
启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
查看docker服务状态
systemctl status docker
docker安装jenkins容器
安装jenkins 可以去这里获取你需要的版本:https://hub.docker.com/_/jenkins?tab=tags
```docker pull jenkins/jenkins:lts```
==下载完成后可以使用:docker images 查询已下载好的jenkins镜像==
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200615175326278.png)
如果下载速度很慢,可以设置docker 加速镜像
<1>编辑 vi /etc/docker/daemon.json
<2>设置加速镜像 {"registry-mirrors": ["http://hub-mirror.c.163.com"]}
<3>重启docker sudo systemctl restart docker
如果重启失败报错: Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
<4>删除该文件下所有内容:
cd /var/lib/docker
rm -rf *
<5> 重启docker
<6> 下载jenkins docker pull jenkins:2.60.3
创建一个jenkins目录用户挂载容器内部的jenkins
mkdir -p /data/jenkins_home/
需要修改下目录权限,因为当映射本地数据卷时/data/jenkins_home/目录的拥有者为root用户,而容器中jenkins用户的 uid 为 1000。
chown -R 1000:1000 /data/jenkins_home/
创建容器
docker run -d --name jenkins -p 10001:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home jenkins:2.60.3
-d 标识是让 docker 容器在后台运行
--name 定义一个容器的名字,如果没有指定,那么会自动生成一个随机数字符串当做UUID
-p 8040:8080 端口映射,我本地的8080被占用了,所以随便映射了一个8040
-p 50000:50000 端口映射
-v /data/jenkins_home:/var/jenkins_home 绑定一个数据卷,/data/jenkins_home是刚才创建的本地数据卷
浏览器访问jenkins
http://IP地址:10001
查询Jenkins的初始密码 注意这个地址是docker容器中的
第一种方式(docker容器中):
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
第二种方式(本地数据卷中):
cat /data/jenkins_home/secrets/initialAdminPassword
下载系统推荐的插件即可耐心等待下载
创建项目
插件安装 注意:安装插件后需要重启,插件才会生效
==确保以下插件被正确安装:
根据角色管理权限的插件:Role-based Authorization Strategy
远程使用ssh的插件:SSH plugin
ssh传输文件到远程服务器: Publish Over SSH
前端vue项目:nodejs ==
配置全局环境 (jdk maven nodejs git )
推荐系统自动安装,如果需要发布前端项目时,需要先安装nodejs插件
配置远程服务器
新建任务发布spring boot 项目至远程服务器
创建任务
配置general 按照自己的需求进行设置
源码管理
构建配置
==调用顶层Maven目标会将项目进行打包,
send files or execute commands over ssh: 将打包好的jar包通过ssh 传输到远程服务器
上
Execute shell script on remote host using ssh: 运行远程服务器shell脚本,停止原服务,启动新服务 ==
部署spring boot 项目的远程服务器脚本
#!/bin/bash
#服务名称,一般跟项目名称一致
SERVER_NAME=msbjSync.jar
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行
JAR_NAME=msbjSync
JAR_WORK_PATH=/usr/local/service/msbj/sync
echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | grep -v grep | awk '{print $2}'`
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
#后台运行jar
nohup java -jar $JAR_NAME.jar &
#PID=`ps -ef | grep "$SERVER_NAME" | grep -v grep | awk '{print $2}'`
#echo "新的进程ID:$PID"
ps -ef|grep java
echo '执行完了构建'