docker安装Jenkins执行构建jar运行方式

 更新时间:2024年05月06日 09:24:28   作者:pengwei12345  
这篇文章主要介绍了docker安装Jenkins执行构建jar运行方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

自己docker启动Jenkins的一些自我心得,docker启动Jenkins还是有很多问题,建议还是使用本地直接安装靠谱

1. 拉取docker最新Jenkins镜像lts

docker pull jenkins/jenkins:lts

2. 创建目录及权限

这一步很关键。。。

ls -nd /home/Jenkins  # 查看目录归属ID

sudo mkdir /data/jenkins_home/
chown -R 1000:1000 /data/jenkins_home/  # 赋予权限
sudo chmod 777 /data/jenkins_home
#我随便都给了权限,总是到处报错 很烦···
chown -R jenkins:jenkins /app/dockers/jenkins/data/
chown -R 1000 /app/maven/apache-maven-3.8.6
chown -R 1000 /app/maven/apache-maven-3.8.6/repo/

3. 运行docker镜像

docker run --name jenkins --restart=on-failure --detach \
--privileged=true \
--env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--publish 8888:8080 --publish 50000:50000 \
--publish 8008:8008 \ #启动jar的端口号 不加访问不了启动的jar包
-v /app/dockers/jenkins/data:/var/jenkins_home \
-v /usr/lib/jvm/java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64:/usr/local/src/jdk/jdk11 \
-v /app/maven/apache-maven-3.8.6:/opt/apache-maven-3.8.6 \
--volume jenkins-docker-certs:/certs/client:ro \
jenkins/jenkins:lts

4. 启动Jenkins

启动Jenkins网上教程很多,这里不做赘述,下载maven插件 gitlab插件 配置对应参数

5. 配置流水线

git配置登录

构建maven

clean install -pl /fastdfs-service -am -DskipTests=true -P dev

构建jar的shell脚本

shell启动jar脚本

#!/bin/bash
echo "开始启动jar包....."

#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe

#指定最后编译好的jar存放的位置 即是发布目录
www_path=${WORKSPACE}/javaProject
#Jenkins中编译好的jar位置  即是编译目录
jar_path=${WORKSPACE}/fastdfs-service/target
#Jenkins中编译好的jar名称 
jar_name=little-partner-fastdfs
app_jar=${jar_name}.jar
ENV=dev
#实时日志
LOG_PATH=${www_path}/logs/${jar_name}.log

if [ ! -d "${www_path}" ]; then
 mkdir ${www_path}
 mkdir ${www_path}/logs
fi

#进入指定的编译好的jar的位置
cd  ${jar_path}
#将编译好的jar复制到最后指定的位置
cp  ${jar_path}/${app_jar} ${www_path}
#进入最后指定存放jar的位置
cd  ${www_path}

if [[ ! -f "$www_path/$app_jar" ]]; then
echo "---------------------------------"
echo "$jar_name 不存在>>>>>"
echo "---------------------------------"
exit 1
fi
#杀掉以前的进程
ps aux|grep ${app_jar}|grep -v grep|awk '{print $2}'|xargs kill -9

#启动jar,指定SpringBoot的profiles为dev,后台启动
#java -jar -Dspring.profiles.active=${ENV} ${app_jar} &
#启动服务
nohup /usr/local/src/jdk/jdk11/bin/java -Xms256m -Xmx256m -jar ${app_jar} > ${LOG_PATH} & 

echo "启动中>>>>>>>"

6. Jenkins官方镜像是纯净版Debian系统

先以root进入docker 容器

docker exec -u root -it 容器名称 bash

我这个版本无法执行ps命令。。。所以必须更新安装ps

apt update -y #先更新

apt-get install vim

速度太慢了···有点受不了快先换了地址源

问题描述:在使用vim命令时,即使使用I命令切换到“插入模式”时,也不能使用复制或者粘贴命令,“ctrl + v ”大法也被禁止

解决方法:

编辑文件(默认没有这个文件)

vim ~/.vimrc

末尾添加两行参数

set mouse=a
set mouse=r
syntax on

然后就可以开心的复制黏贴啦

vim /etc/apt/sources.list
#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

#中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

#163源
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

#清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

更换三方源没有对应的Key

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

安装ps支持工具包

apt update && apt -y install procps

7. 启动项目构建成功

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker使用Dockerfile构建镜像的方法

    docker使用Dockerfile构建镜像的方法

    这篇文章主要介绍了docker使用Dockerfile构建镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Docker部署SpringBoot项目的实现步骤

    Docker部署SpringBoot项目的实现步骤

    本文主要介绍了Docker部署SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2007-02-02
  • Docker容器的调试技巧之docker logs与docker service logs解读

    Docker容器的调试技巧之docker logs与docker service logs

    这篇文章主要介绍了Docker容器的调试技巧之docker logs与docker service logs,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Docker多阶段镜像构建的实现

    Docker多阶段镜像构建的实现

    本篇文章主要介绍了Docker多阶段镜像构建的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • docker容器互联的实现步骤

    docker容器互联的实现步骤

    容器互联是除了端口映射外另一种可以与容器通信的方式,本文就来介绍一下docker容器互联的实现步骤,感兴趣的可以了解一下
    2023-12-12
  • docker中使用GPU+rocksdb的详细教程

    docker中使用GPU+rocksdb的详细教程

    这篇文章主要介绍了docker中使用GPU+rocksdb,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • Armbian5.9.0安装docker及部署可视化portainer的详细教程

    Armbian5.9.0安装docker及部署可视化portainer的详细教程

    这篇文章主要介绍了Armbian5.9.0安装docker及部署可视化portainer的详细教程,通过 ssh 进去 Armbian 系统后,输入相应代码,按提示输入y,等待安装完成即可,需要的朋友可以参考下
    2022-05-05
  • docker容器内缺少命令的简单解决办法

    docker容器内缺少命令的简单解决办法

    有时候在docker容器里面不仅没有你期望的那些常用的命令,甚至没有yum命令让你去安装那些常用的命令,下面这篇文章主要给大家介绍了关于docker容器内缺少命令的简单解决办法,需要的朋友可以参考下
    2023-03-03
  • 详解docker国内镜像拉取和镜像加速registry-mirrors配置修改

    详解docker国内镜像拉取和镜像加速registry-mirrors配置修改

    由于国内访问直接访问Docker hub网速比较慢,拉取镜像的时间就会比较长。一般我们会使用镜像加速或者直接从国内的一些平台镜像仓库上拉取
    2017-05-05
  • Docker 容器互联互通的实现方法

    Docker 容器互联互通的实现方法

    这篇文章主要介绍了Docker 容器互联互通,本文讲解不同网络下的容器可以通过加入同一个docker网络,来访问该docker网络下的容器,并且既可以通过容器ip也可以通过容器名连接,非常方便,需要的朋友可以参考下
    2022-10-10

最新评论