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容器运行常用参数详解

    Docker容器运行常用参数详解

    Docker运行容器时可以使用各种命令行参数来定制其运行环境和行为,本文给大家介绍了一些Docker容器运行常用参数,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-12-12
  • 如何清理 Docker 占用的磁盘空间的方法

    如何清理 Docker 占用的磁盘空间的方法

    这篇文章主要介绍了详解如何清理 Docker 占用的磁盘空间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • docker初识之五分钟认识docker

    docker初识之五分钟认识docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。通过本文学习可以快速了解docker,本文介绍的非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • 基于Docker搭建Graylog分布式日志采集系统的详细过程

    基于Docker搭建Graylog分布式日志采集系统的详细过程

    Graylog是一个开源的日志管理工具,支持日志收集、解析、存储、搜索和可视化,它可以从各种数据源收集日志,并通过内置的解析器将日志格式化,本文介绍基于Docker搭建Graylog分布式日志采集系统,感兴趣的朋友一起看看吧
    2025-02-02
  • Docker安装配置Redis镜像的实现步骤

    Docker安装配置Redis镜像的实现步骤

    Redis是一个由Salvatore Sanfilippo写的key-value存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多语言API,本文带你在Docker安装配置它
    2021-11-11
  • docker容器无法执行vim的解决方案

    docker容器无法执行vim的解决方案

    这篇文章主要介绍了docker容器无法执行vim的解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 详解Docker-compose networks 的例子

    详解Docker-compose networks 的例子

    这篇文章主要介绍了详解Docker-compose networks 的例子,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Docker 特性与原理详细介绍与解析

    Docker 特性与原理详细介绍与解析

    这篇文章主要介绍了Docker 特性与原理的相关资料,大家在了解基本命令和基本知识后,来看下原理性的通信,需要的朋友可以参考下
    2016-10-10
  • docker部署项目/var/lib/docker/overlay2目录满了该如何清理

    docker部署项目/var/lib/docker/overlay2目录满了该如何清理

    Docker中的/var/lib/docker/overlay2目录是用于存储Docker容器的数据层和镜像层的,使用Docker一段时间后这个目录可能会变得非常大,这篇文章主要给大家介绍了关于docker部署项目/var/lib/docker/overlay2目录满了该如何清理的相关资料,需要的朋友可以参考下
    2024-04-04
  • Docker从零构建php-nginx-alpine镜像的方法

    Docker从零构建php-nginx-alpine镜像的方法

    这篇文章主要介绍了Docker从零构建php-nginx-alpine镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论