参考官网: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

docker启动jenkins怎么配置maven docker jenkins maven_maven


打开文件/home/docker/jenkins/secrets/initialAdminPassword 复制密码

docker启动jenkins怎么配置maven docker jenkins maven_jar_02


安装推荐的软件

docker启动jenkins怎么配置maven docker jenkins maven_docker_03


等待安装完成

docker启动jenkins怎么配置maven docker jenkins maven_jar_04


重新设置用户名和密码

docker启动jenkins怎么配置maven docker jenkins maven_maven_05


直接保存

docker启动jenkins怎么配置maven docker jenkins maven_jar_06


打开插件管理

docker启动jenkins怎么配置maven docker jenkins maven_jar_07


安装maven插件 Maven Release Plug-in

docker启动jenkins怎么配置maven docker jenkins maven_docker_08


等待安装完成即可

docker启动jenkins怎么配置maven docker jenkins maven_jar_09


配置maven工具

docker启动jenkins怎么配置maven docker jenkins maven_docker_10


docker启动jenkins怎么配置maven docker jenkins maven_docker_11

构建自己的应用,自动部署到Docker

1.新建任务

docker启动jenkins怎么配置maven docker jenkins maven_docker_12

2源码管理配置

docker启动jenkins怎么配置maven docker jenkins maven_jar_13


点击添加git账号密码

docker启动jenkins怎么配置maven docker jenkins maven_docker_14


然后选择要拉取的分支

docker启动jenkins怎么配置maven docker jenkins maven_maven_15

3构建命令

docker启动jenkins怎么配置maven docker jenkins maven_jar_16


指令clean package -pl web -am -Dmaven.test.skip=true 指令说明:

-pl --projects <arg> 构建指定的模块,模块间用逗号分隔;

-am --also-make 同时构建所列模块的依赖模块;

-Dmaven.test.skip=true 构建时跳过测试

4.构建后执行shell指令,编写Dockerfile文件生成镜像,并运行

docker启动jenkins怎么配置maven docker jenkins maven_maven_17


指令: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 " ") 使用随机数(推荐)

5.保存后,回到首页

docker启动jenkins怎么配置maven docker jenkins maven_maven_18


所有步骤完成,可执行构建,开始部署

注意:由于使用了docker构建镜像,需要通过命令docker login 登录自己的存储库后,才开始部署

Jenkins忘记密码解决方案


注意

在使用jenkins时,占用系统内存相对较大,特别在使用maven构建的时候,如果机器内存不足2G,jenkins可能直接崩掉,或maven打包失败报错内存不足等问题。

1.maven打包报错:
Maven JVM terminated unexpectedly with exit code 137 首先尝试在jenkins 配置内存maven 的内存 。
打开系统管理->系统配置,找到maven的 全局MAVEN_OPTS输入栏,填入-Xmx1024m

如果依然报错,则需要增加虚拟内存,建议2G