我的环境:
服务器:centos7.3
docker:

1.安装docker:yum install -f docker
2.安装docker-compose:
- curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-
uname -s-uname -m-o /usr/local/bin/docker-compose - chmod +x /usr/local/bin/docker-compose
3.新建docker-compose.yml来构建jenkins
version: "3.1"
services:
jenkins:
#镜像名
image: docker.io/jenkins/jenkins
#容器名
container_name: jenkins
#端口映射
ports:
- 8086:8080
- 12345:50000
- 8087:80
#数据卷
volumes:
- "/mydocker/jenkins/data:/var/jenkins_home"
- "/var/run/docker.sock:/var/run/docker.sock"
#使用root账户
user: root
我这里映射了三个端口其中8080是容器内jenkins的web登陆端口,我这映射成了宿主机的8086端口,
容器内的80端口是我的项目访问端口,映射成了宿主机的8087端口
4安装jenkins:
在docker-compose.yml的同级运行:docker-compose up -d

接下来查看日志

红色圈起来的是密码
浏览器输入http://服务器ip:8086
可以看到下面这个界面,然后填入密码

这里选择安装推荐的插件

这个界面非常的漫长,我等了差不多一个小时

经过漫长的等待,终于进入下一步创建用户,这里只要自己记住就行了

然后一路小跑下一步就来到了这里

下面开始配置jenkins的jdk,maven,git,Ant
我这里全都选择的自动安装jdk,maven,git,ant 也可以自己安装,看自己心情




下面开始新建一个项目

这里填写项目名称,选择maven项目。确定
配置源码,我这里绑定的是我码云的一个项目

这里配置触发器,就是说他什么时候去构建项目,我这里选择是轮询三分钟一次,其中轮询和定时器两个的区别就是轮询是在满足时间并且git代码有更新的情况下才会构建项目,定时器只要时间一到就会构建项目

配置打包方式

下面编写构建项目后要执行的脚本,使用这个脚本来发布我们的项目(重点)

#进入jenkins的项目路径
cd /var/jenkins_home
echo "Execute shell Start"
#停止项目
sh stop.sh
#备份项目
sh replace.sh
echo "Execute shell Finish"
#添加权限
chmod 777 /var/jenkins_home/startup.sh
#运行项目
BUILD_ID=dontKillMe nohup /var/jenkins_home/startup.sh &
stop.sh
#!stop.sh
#!/bin/bash
cd //var/jenkins_home/workspace/jenkins_Test/target/
ls
pid=`ps -ef | grep docker_test-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
#!kill -9 强制终止
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
replace.sh
jar_name=docker_test-0.0.1-SNAPSHOT.jar
#!编译好的jar包存放地址
file_path=/var/jenkins_home/workspace/jenkins/target/
#!将现有的jar备份后,将新的jar包替换
file="/var/jenkins_home/workspace/jenkinsTest/docker_test-0.0.1-SNAPSHOT.jar"
if [ -f "$file" ]
then
mv /var/jenkins_home/workspace/jenkinsTest/docker_test-0.0.1-SNAPSHOT.jar /var/jenkins_home/workspace/jenkinsTest/docker_test-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S`
fi
cp /var/jenkins_home/workspace/jenkinsTest/target/docker_test-0.0.1-SNAPSHOT.jar /
startup.sh
ehco "授予当前用户权限"
chmod 777 /docker_test-0.0.1-SNAPSHOT.jar
echo "执行....."
cd /
java -jar docker_test-0.0.1-SNAPSHOT.jar
echo "**********************cmp on jenkins started*************************"
点击保存,回到项目里,点立即构建

这里可以看构建历史

这里查看控制台的构建信息

看到SUCCESS这个单词就说明成功了,浏览器就可以访问的我们的项目了,以后码云上的代码更新,jenkins就能帮我们运行项目了

这里可查看git的轮询时间

这里可以看上次构建时间和下次构建时间

可能出现的问题
1:时区不对
先进入jenkins容器,然后修改环境变量,最后重启一下就好了

重新登陆一下就ok了

2:在创建项目的时候发现没有maven项目
点击系统管理

插件管理

在搜索输入Pipeline Maven,打个勾,直接安装重启就OK了

Docker部署Jenkins实战

1万+

被折叠的 条评论
为什么被折叠?



