当前位置: 首页 > news >正文

搭建jenkins一键部署java项目

一、搭建jenkins

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

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

 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文件

FROM openjdk:8-jre
MAINTAINER xwbRUN 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.jarCMD ["java","-jar","/jenkins-demo.jar"]

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

执行脚本

#!/bin/bash
containerName="jenkins-demo"
PROJECT_NAME="jenkins-demo-dockerfile"echo "=====*****=====停止$containerName容器"
docker stop $containerNameecho "=====*****=====删除$containerName容器"
docker rm $containerNameecho "=====*****=====删除$containerName镜像"
docker rmi $containerNameecho "=====*****=====构建镜像=====*****=====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

调用远程接口:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • pandas中的concat函数:详尽指南
  • HTTP简单概述
  • QML中的Date将时间戳和指定格式时间互转
  • 人工智能与机器学习的相关介绍
  • 速盾:cdn防盗链
  • 【C++标准模版库】模拟实现vector+迭代器失效问题
  • Flume系列之:把flume配置写入到zookeeper节点
  • net 工控机 字节转换 字符,ToString 格式化
  • 前端HTML+CSS复习
  • AIGC平台创业启示录:从Airbnb的成功经验中汲取灵感
  • 反制攻击者-蚁剑低版本
  • 腾讯OCR签名算法
  • EDI是什么:EDI系统功能介绍
  • Depth Anything——强大的单目深度估计模型
  • 北京崇文门中医院贾英才主任解读头晕:症状与根源
  • 时间复杂度分析经典问题——最大子序列和
  • #Java异常处理
  • [译]Python中的类属性与实例属性的区别
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • const let
  • crontab执行失败的多种原因
  • CSS居中完全指南——构建CSS居中决策树
  • javascript从右向左截取指定位数字符的3种方法
  • js
  • LeetCode29.两数相除 JavaScript
  • Node 版本管理
  • Protobuf3语言指南
  • Redis的resp协议
  • use Google search engine
  • Vue 动态创建 component
  • Vue小说阅读器(仿追书神器)
  • 初探 Vue 生命周期和钩子函数
  • 第十八天-企业应用架构模式-基本模式
  • 今年的LC3大会没了?
  • 判断客户端类型,Android,iOS,PC
  • 设计模式(12)迭代器模式(讲解+应用)
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • hi-nginx-1.3.4编译安装
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 积累各种好的链接
  • 进程与线程(三)——进程/线程间通信
  • ​比特币大跌的 2 个原因
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (¥1011)-(一千零一拾一元整)输出
  • (javascript)再说document.body.scrollTop的使用问题
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (理论篇)httpmoudle和httphandler一览
  • (利用IDEA+Maven)定制属于自己的jar包
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)大型网站的系统架构
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)