搭建jenkins一键部署java项目

一、搭建jenkins

链接: https://pan.baidu.com/s/1jzx15PiyI8EhLd_vg7q8bw 提取码: ydhl 复制这段内容后打开百度网盘手机App,操作更方便哦

直接使用docker导入镜像,运行就好

bash 复制代码
 docker run -di --name jenkins -p 8080:8080 -v /home/jenkins_home:/var/jenkins_home jenkins

这里我把jenkins的主目录挂载出来了,以防jenkins宕机,重启docker以前的jenkins配置就全没了(不要问我怎么知道的,下载jenkins插件的时候,老容易宕机了,重启了好几次容器)

密码:

admin

123456

1、下载插件

2024年8月3日还能使用的插件镜像源:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

2、配置git、maven、jdk、ssh远程登录

git用于拉取仓库的代码,maven用来构建项目(后续搭建一个本地maven仓库,自己公司写的jar包只能放在公司的服务器上)

最上面后续改变一下配置文件的地址,使用自己的配置文件,绑定私有的maven仓库,这样就能使用自己写的jar包了。

配置ssh也就是项目需要运行的服务器,远程将打包好的jar包上传上去,然后远程执行运行docker。这里配置地址和连接信息,具体的操作需要在jenkins构建项目时详细配置。

3、配置连接秘钥

二、创建项目

填写项目的gitlab地址,选择上面添加的gitlab账号密码,或者在这里添加也是可以的

设置pom文件地址,这是相对于项目的,不需要全局

添加ssh操作

docker文件,创建运行docker的脚本

DockerFile文件

bash 复制代码
FROM openjdk:8-jre
MAINTAINER xwb

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/locatime

#暴露的端口
EXPOSE 8881

#用来指定当前工作目录(或者称为当前目录) 当使用相对目录的情况下,采用上一个WORKDIR指定的目录作为基准
#相当与cd 命令,但不同的是指定了WORKDIR后,容器启动时执行的命令会在该目录下执行
WORKDIR /usr/local/software/dockerImg/jenkins-demo

# 将targer目录下的jar包复制到docker容器/目录下面
ADD /target/nihaoshijie-1.0-SNAPSHOT.jar /jenkins-demo.jar

CMD ["java","-jar","/jenkins-demo.jar"]

ADD操作是基于DockerFile操作的,也就是说不能有\var,\home等前缀,只能是和DockerFile同级或者子级别

执行脚本

bash 复制代码
#!/bin/bash
containerName="jenkins-demo"
PROJECT_NAME="jenkins-demo-dockerfile"

echo "=====*****=====停止$containerName容器"
docker stop $containerName

echo "=====*****=====删除$containerName容器"
docker rm $containerName

echo "=====*****=====删除$containerName镜像"
docker rmi $containerName

echo "=====*****=====构建镜像=====*****=====docker build -t $containerName ."
cd /home/t2/nihaoshijie/nihaoshijie
docker build -t $containerName .

echo "=====*****=====docker启动容器 docker run --name $containerName -d -p 8881:8881 $containerName"
docker run --name $containerName -d -p 8881:8881 $containerName

调用远程接口:

相关推荐
惊起白鸽45021 分钟前
LVS负载均衡
运维·负载均衡·lvs
伤不起bb2 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
广东数字化转型2 小时前
nginx怎么使用nginx-rtmp-module模块实现直播间功能
linux·运维·nginx
love530love2 小时前
【笔记】在 MSYS2(MINGW64)中正确安装 Rust
运维·开发语言·人工智能·windows·笔记·python·rust
啵啵学习2 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式
数字芯片实验室3 小时前
寄存器模型生成:从手工到自动化
运维·自动化
冰橙子id4 小时前
linux——磁盘和文件系统管理
linux·运维·服务器
咕噜企业签名分发-淼淼4 小时前
应用app的服务器如何增加高并发
运维·服务器
b***25114 小时前
18650锂电池组点焊机:高效组装锂电池的关键工具|比斯特自动化
运维·自动化
leagsoft_10034 小时前
联软NSPM自动化策略管理 助力上交所加速国产化替代提升运维效率
运维·网络·自动化