Docker安装Jenkins,通过maven插件构建项目,自动化部署

17 篇文章 0 订阅
3 篇文章 0 订阅

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值