前置
系统:Linux CentntOs 7
jdk : 1.8
maven: 3.5
git
docker
1. Jenkins的安装
[1] war包的形式下载: http://mirrors.jenkins-ci.org/war/latest/jenkins.war
[2] 把下载后的war包移动到linux系统上
[3] 启动jenkins
参数解释:
/usr/local/jenkins/jenkins.war 表示你现在jenkins存放的路径,根据实际情况更改
/usr/local/jenkins/jenkins.out 表示把你jenkins的输出日志的位置
& 表示在后台静默启动
nohup java -jar /usr/local/jenkins/jenkins.war >/usr/local/jenkins/jenkins.out &
[4] 输入你自己的主机ip + 8080
例如:http://192.168.31.85:8080/
这里需要一个密码验证 (根据提示查看红色字体下的文件)
[5] 在linux上查看密钥,并把密码输入上面的框
cat /root/.jenkins/secrets/initialAdminPassword # 查看密码
[6] 进入下一个页面后,请别点击安装。因为官方下载插件较慢,需要更换镜像源
[7] 更换镜像源
/root/.jenkins/ 该地址是你获取密钥的地址(即jenkins的安装地址)
cd /root/.jenkins/updates
直接在命令行上输入:
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
这里需要杀死刚才启动的jenkins进程,重新启动
ps -ef | grep jenkins # 查看当前进程
kill 进程号 # 杀死进程
nohup java -jar /usr/local/jenkins/jenkins.war >/usr/local/jenkins/jenkins.out & # 启动jenkins
[8] 安装插件
[9] 创建一个用户
[10] 进入jenkins的主界面
2. jenkins的自动化部署项目
【1】在主界面进行环境的相关配置
【2】 配置系统中的jdk, maven, git 等环境
配置jdk
可以通过命令行查找安装路径(下面的类似)
which jdk
配置Maven
配置Git
【3】 自动化构建项目
准备工作:
<1>需要在项目的根目录下加上 Dockerfile文件
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY ./target/demojenkins.jar demojenkins.jar
ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"]
参数解释:
./target/demojenkins.jar 表示你打包后目录下的名字
demojenkins.jar 表示复制到当前项目后的名字
<2> 在打包的pom.xml文件上做两处修改
修改打包的方式和打包后的名字
【4】 在jenkins管理化界面创建自动化的任务
在构建任务时需要配置远程仓库的地址和执行的脚本
<1> 设置远程仓库的地址
<2> 添加可执行的脚本
相关脚本文件:(只需要修改 路径,项目名,端口号)
#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./
service_name="demojenkins"
service_prot=8081
#查看镜像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
echo "exist $SERVER_NAME image,IID=$IID"
#删除镜像
docker rmi -f $service_name
echo "delete $SERVER_NAME image"
#构建
docker build -t $service_name .
echo "build $SERVER_NAME image"
else
echo "no exist $SERVER_NAME image,build docker"
#构建
docker build -t $service_name .
echo "build $SERVER_NAME image"
fi
#查看容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
echo "exist $SERVER_NAME container,CID=$CID"
#停止
docker stop $service_name
#删除容器
docker rm $service_name
else
echo "no exist $SERVER_NAME container"
fi
#启动
docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
#查看启动日志
docker logs -f $service_name
这样就能成功构建一个任务
[5] 执行任务
执行任务时先启动docker
service docker start
点击进入后
Tips:
查看控制台输出:
日志内容