Docker安装Jenkins打包SpringBoot应用为Docker镜像+Gitee实现代码自动化构建
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。在实际开发中,我们经常要一边开发一边提交测试,如果每次部署项目都需要人为的执行maven打包命令->上传jar包到服务器->执行java -jar 等启动命令的话,无形的在增加项目的开发成本,而通过Jenkkins来简化这一过程还是很有必要的,所以本文将带领大家如何通过docker来安装Jenkins、如何通过Jenkins打包docker镜像并运行起来。
准备工作
创建Java目录
mkdir /usr/local/jdk-11
解压到Java目录 命令:tar -zxvf 《压缩包名》
配置Maven加速镜像地址和本地仓库目录
创建maven仓库目录
mkdir -p /usr/local/maven/localRepository
编辑配置文件
vim /usr/local/maven/conf/settings.xml
<localRepository>/usr/local/maven/localRepository</localRepository> <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
Docker安装Jenkins最新版
安装Jenkins
#创建jenkins_home数据挂载目录 mkdir /usr/local/jenkins_home #赋值权限,否则后面会写入失败,这里我们给最高权限 chmod -R 777 /usr/local/jenkins_home /usr/local/maven/localRepository #拉取jenkins镜像 docker pull jenkins/jenkins:lts #启动jenkins容器 docker run -d --name=jenkins -p 8080:8080 --privileged=true \ -v /usr/local/jenkins_home:/var/jenkins_home \ -v /usr/local/jdk-11:/usr/local/jdk-11 \ -v /usr/local/maven:/usr/local/maven \ -v $(which docker):/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts #授予docker的操作权限给jenkins等容器使用 chmod a+rw /var/run/docker.sock
注意:/var/run/docker.sock 系统重启后就没有权限了,再次执行chmod a+rw /var/run/docker.sock即可
配置Jenkins
ip+端口进入Jenkins首页,密码日志会打印,命令:docker logs -f jenkins
安装jenkins推荐插件
一系列傻瓜操作后来到
JDK配置
Git就自动安装
Maven配置
保存
新建一个boot项目
Dockerfile
FROM openjdk:8-jre ENV TZ Asia/Shanghai COPY target/test-1.0.0.jar app.jar ENTRYPOINT ["java","-Xms256m","-Xmx512m","-jar","app.jar"]
上传到Gitee
去下载Gitee插件
安装好了重启
配置Gitee
开始新建任务
clean package
脚本内容
#!/bin/bash container_name="test" if [ "$(docker ps -aqf "name=$container_name")" ]; then if [ "$(docker inspect --format '{{ .State.Running }}' $container_name)" = "true" ]; then echo "容器 $container_name 正在运行..." # 停止容器 docker stop $container_name # 删除容器 docker rm $container_name else echo "容器 $container_name 未运行" # 删除容器 docker rm $container_name fi else echo "容器 $container_name 不存在" fi # 拉取最新镜像 docker pull xnj.com:800/common/test # 运行镜像 docker run -d -p 8888:8888 --name test xnj.com:800/common/test
Gitee添加WebHook,URL和密码前面有
测试一下看看
访问一下测试
更改一下代码提交
完事