首页 > 系统相关 >ubuntu20.04-通过docker安装jenkins并自动化发布java

ubuntu20.04-通过docker安装jenkins并自动化发布java

时间:2024-03-11 14:14:12浏览次数:37  
标签:ubuntu20.04 java -- jar maven jenkins docker

前言

jenkins需要git、maven和node,其中maven和node手动添加,git和git环境是jenkins镜像自带了的。

如果删除了docker对应的jenkins容器后(删除前一定备份jenkins_home整个文件夹,否则怕前功尽弃:

tar -czvf jenkins_home.tar.gz /var/jenkins_home)

如果删除了容器,需要重新安装并配置maven,

docker cp /home/maven myjenkins:/opt/maven

上面的作用是从宿主机的/home/maven复制数据到容器名myjenkins的容器里面的/opt/maven中

 同理,如果删除了容器需要重新安装和配置node

最后三台主机要做免密登录,比较简单这里就不展开了

 

apt update && apt install -y vim

apt install wget

wget https://nodejs.org/dist/v18.16.1/node-v18.16.1-linux-x64.tar.gz

tar -zxvf node-v18.16.1-linux-x64.tar.gz

vim /etc/profile

export PATH=/home/node-v18.16.1-linux-x64/bin:$PATH

source /etc/profile

 

一、拉最新的dockerhub版本的docker

docker pull jenkins/jenkins

 

二、跑docker以root账户

 

 

docker run -itd -u root --restart=always -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v 

/etc/localtime:/etc/localtime -e TZ=Asia/Shanghai --name myjenkins jenkins/jenkins

三、查密码

选默认(安装推荐的插件)

 

 

使用admin用户继续

 

安装如下非docker自带的,必要的插件,完成后再点下面的重启

 

安装jdk

容器里面的jdk默认位置为:

 

 

 wget https://archive.apache.org/dist/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz

tar -vxf apache-maven-3.8.5-bin.tar.gz

移除容器后,卷的信息都还在

 

scp成功后,开始配置后台java启动服务

root@zhgd-develop-01:/usr/local/shell_scripts# cat startUpAfter.sh

#!/bin/bash

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

#项目名称

PROJECT_NAME=$1

#先停止应用

COUNT=`ps  --no-heading -C java -f --width 1000 | grep -v "8882\|8872" | grep "${PROJECT_NAME}" | awk '{print $2}' | wc -l`

if [ $COUNT -gt 0 ]; then

        SERVER_PID=`ps  --no-heading -C java -f --width 1000 | grep -v "8882\|8872"| grep ${PROJECT_NAME} | awk '{print $2}'`

    kill -9 $SERVER_PID

fi

echo "pre run success[OK]"

#启动类的全类名

APP_MAINCLASS=$2

#项目的端口

SERVER_PORT=$3

#任务调度器的端口

#SCHEDULE_PORT=$4

#项目监控的端口

#APP_MONITOR_PORT=$5

#环境标识

APP_ENV=$4

DIR_OF_APPLICATION=$5

#项目部署的家目录

SERVERS_HOME=/application/spring_servers

#项目部署的目录

DEPLOY_DIR=${SERVERS_HOME}'/'${DIR_OF_APPLICATION}

#再启动应用

cd ${DEPLOY_DIR}

nohup $JAVA_HOME/bin/java  -jar ${SERVERS_HOME}/${DIR_OF_APPLICATION}/${PROJECT_NAME}.jar --spring.profiles.active=${APP_ENV} $APP_MAINCLASS >/dev/null 2>&1 &

#启动成功

echo "nohup java -jar ${SERVERS_HOME}/${DIR_OF_APPLICATION}/${PROJECT_NAME}.jar --spring.profiles.active=${APP_ENV} $APP_MAINCLASS  >${PROJECT_NAME}.log 2>&1 &"

echo "success[OK]"

exit 0

 

root@zhgd-develop-01:/usr/local/shell_scripts# sh /usr/local/shell_scripts/startUpAfter.sh admin com.ruoyi.Application 8090 dev

pre run success[OK]

nohup java -jar /application/spring_servers//admin.jar --spring.profiles.active=dev com.ruoyi.Application  >admin.log 2>&1 &

success[OK]

root@zhgd-develop-01:/usr/local/shell_scripts# nohup java -jar /application/spring_servers//admin.jar --spring.profiles.active=dev com.ruoyi.Application  >admin.log 2>&1 &

[1] 39980

后端配置java可以参考:https://blog.csdn.net/weixin_43202160/article/details/134416447

 

docker exec -uroot -it myjenkins bash

/var/jenkins_home/workspace

scp admin.jar [email protected]:/application/spring_servers/ruoyi/

 系统配置:

 docker安装配置jenkins启动java项目完毕

 

标签:ubuntu20.04,java,--,jar,maven,jenkins,docker
From: https://www.cnblogs.com/CarlJohnson9527/p/18065906

相关文章

  • java: 程序包com.sun.org.slf4j.internal不存在
    java:程序包com.sun.org.slf4j.internal不存在事件之由来问题之分析处理之方案收工事件之由来拉完别人的项目后,启动不了了,报错提示:java:程序包com.sun.org.slf4j.internal不存在1问题之分析就是别人用lombok了同时使用slf4j和lombok的时候会出现这个问题原因是slf4j和lombok自......
  • Java Http Get Post 请求工具类
    importcom.alibaba.fastjson.JSONObject;importorg.apache.http.NameValuePair;importorg.apache.http.client.config.RequestConfig;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.CloseableHttpResponse;importorg......
  • default在java中的用法 java里default
    介绍default是在java8中引入的关键字,也可称为Virtualextensionmethods——虚拟扩展方法。是指,在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接口的语法限制),从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。为什么需要这......
  • Java 对接Zabbix获取主机监控+告警数据
    1.Java对接ZabbixAPI前提准备  zabbix对接文档地址: https://www.zabbix.com/documentation/6.4/zh/manual/api对接ZabbixAPI接口需要针对对接的用户授予对应的API权限,如下图所示 使用超管账户登录zabbix 用户--->用户,查看用户列表      点击对接......
  • 狂神说Java——Mybatis学习笔记
    前言:配合狂神老师的教学视频使用效果更佳:https://www.bilibili.com/video/BV1NE411Q7Nx/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=4c3c519d33c113799489c7417a0a4c0e1、简介环境说明:jdk8+MySQL5.7.19maven-3.6.......
  • 深入浅出Java多线程(十):CAS
    引言大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十篇内容:CAS。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!在多线程编程中,对共享资源的安全访问和同步控制是至关重要的。传统的锁机制,如synchronized关键字和ReentrantLock等,能够有效防止多个线程......
  • Java.CompletableFuture使用
    使用CompletableFuture替代Thread+Runnable解决Thread+Runnable没有返回值、串行化和组合任务问题1、CompletableFuture.runAsync异步没有返回值需要传入一个线程池publicstaticExecutorServiceexecutor=Executors.newFixedThreadPool(10);CompletableFuture.runAsync((......
  • Ubuntu20.04使用apt安装以boost库为基础的开发环境
    1.开启了x11功能的mobaxterm(mobaXterm默认开启了,其他的终端可能还要设置开启)上安装一些必要依赖sudoaptinstalllibxext6libxrender1libxtst6libxi6libfreetype6-ysudoapt-getinstallfonts-droid-fallbackttf-wqy-zenheittf-wqy-microheifonts-arphic-ukaifonts-a......
  • java时间操作
    publicstaticvoidmain(String[]args){LocalDateTimetime=LocalDateTime.of(2022,11,30,6,6,6);DateTimeFormatterof=DateTimeFormatter.ofPattern("yyyy-MM-ddHH:mm:ss");StringdateTime=time.format(of);Syste......
  • JDK、maven、git、Jenkins搭建自动化测试环境(安装、打包、发布、部署)
    目录前言一、安装jdk二、安装maven三、安装git四、安装jenkins五、访问jenkins 六、创建用户七、配置jenkins八、执行总结 前言服务器:CentOS7.964位jdk:1.8maven:3.9.1git:gitversion1.8.3.1jenkins:2.346.3一、安装jdk1、下载jdk的rpm安装包(根......