参考官网:https://www.jenkins.io/zh/doc/book/installing
参考官网:docker部署jenkins并使用maven构建
Docker安装Jenkins持续集成
1.创建目录,赋予权限
mkdir /opt/docker/jenkins && chmod -R 777 jenkins
2.运行docker指令:
docker run \
--name jenkins \
-d \
-u root \
-p 9999:8080 \
-v /home/docker/jenkins/:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$HOME":/home \
-e TZ=Asia/Shanghai \
jenkinsci/blueocean
参数说明:
挂载 -v /var/run/docker.sock:/var/run/docker.sock
,才可以共享宿主机的docker资源
指定工作目录:-v /home/docker/jenkins:/var/jenkins_home
,将宿主机/home/docker/jenkins目录作为jenkins的工作目录。
-v "$HOME":/home \
, 将主机上的$HOME
目录 (即你的本地)映射到 (通常是 /Users/ 目录) 到容器的 /home 目录。
3.初次访问:http://<host>:9999
打开文件/home/docker/jenkins/secrets/initialAdminPassword
复制密码
安装推荐的软件
等待安装完成
重新设置用户名和密码
直接保存
打开插件管理
安装maven插件 Maven Release Plug-in
等待安装完成即可
配置maven工具
构建自己的应用,自动部署到Docker
1.新建任务
2源码管理配置
点击添加git账号密码
然后选择要拉取的分支
3构建命令
指令clean package -pl web -am -Dmaven.test.skip=true
指令说明:
-pl --projects <arg>
构建指定的模块,模块间用逗号分隔;
-am --also-make
同时构建所列模块的依赖模块;
-Dmaven.test.skip=true
构建时跳过测试
4.构建后执行shell指令,编写Dockerfile文件生成镜像,并运行
指令:chmod +x docker.sh && ./docker.sh
给docker.sh文件赋予权限,并调用执行
[docker.sh文件内容]
#! /bin/bash
jarName="sentgon-app-api"
#注意:必须把jar包拷贝到当前目录,在构建时才不会出错
cp -a ../../model-app/app-api/target/${jarName}.jar ./
echo "
FROM openjdk:8-jdk-alpine
COPY ./${jarName}.jar /usr/local/app/
WORKDIR /usr/local/app/
CMD java -jar ${jarName}.jar --spring.profiles.active=test
" > Dockerfile
version=$(head -20 /dev/urandom | cksum | cut -f1 -d " ")
docker build -t ${jarName}:${version} .
docker stop ${jarName} ; \
docker rm ${jarName} ; \
docker run -d -p 8082:8082 \
--name ${jarName} \
--network sentgonnet \
--restart=always \
-v /home/javadev/sentapp.zhdingli.com/upload/:/usr/local/app/upload \
${jarName}:${version}
可通过两种方式之一生成唯一版本号
version=$(date +%s%N)
使用时间戳生成唯一版本号。
version=$(head -20 /dev/urandom | cksum | cut -f1 -d " ")
使用随机数(推荐)
Linux上shell脚本date的用法
Linux Shell生成随机数
5.保存后,回到首页
所有步骤完成,可执行构建,开始部署
注意:由于使用了docker构建镜像,需要通过命令docker login 登录自己的存储库后,才开始部署
Jenkins忘记密码解决方案
参考:https://blog.csdn.net/h106140873/article/details/95480258
注意
在使用jenkins时,占用系统内存相对较大,特别在使用maven构建的时候,如果机器内存不足2G,jenkins可能直接崩掉,或maven打包失败报错内存不足等问题。
1.maven打包报错:
Maven JVM terminated unexpectedly with exit code 137
首先尝试在jenkins 配置内存maven 的内存 。
打开系统管理->系统配置,找到maven的 全局MAVEN_OPTS输入栏,填入-Xmx1024m
如果依然报错,则需要增加虚拟内存,建议2G,请看https://www.cnblogs.com/chennl/p/10167088.html