云服务器使用jenkins+docker自动化部署SpringBoot项目

这篇具有很好参考价值的文章主要介绍了云服务器使用jenkins+docker自动化部署SpringBoot项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

docker 安装jenkins,就这一步都恶心死了
//拉取镜像,踩了很多坑,用其它版本的镜像插件一直安装失败,最后用的是lts版本(基础版)

用其它版本要么是连不上插件的下载地址,要么是插件下载不成功

 docker pull jenkins/jenkins:lts

 部署
docker run --user root -d -p 10240:8080 -p 10241:50000 -v /usr/local/jenkins:/var/jenkins_home -v /usr/local/maven/apache-maven-3.8.8:/usr/local/maven 
-v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /data/app/logs:/data/app/logs --name myjenkins 056e9a39e8be

 

细听我慢慢道来,(-v那些千万不要不弄,因为后面都会用上)

解释一下:-d 后台运行容器-p 端口映射--user root  指定运行容器角色  否则可能会导致没有权限从而构建失败-v是将你本地的文件夹挂载到容器指定的文件夹
其中-v /usr/local/jenkins:/var/jenkins_home是指定docker容器下的Jenkins的/var/jenkins_home路径在宿主机的/usr/local/jenkins
/usr/local/maven/apache-maven-3.8.8:/usr/local/maven 
是宿主机的 maven地址:/usr/local/maven/apache-maven-3.8.8映射到容器里面/usr/local/maven
/usr/bin/docker:/usr/bin/docker和/var/run/docker.sock:/var/run/docker.sock是为了在Jenkins容器里面使用docker命令,不然你后面部署的时候docker命令都用不了

其中要对宿主机的/usr/local/jenkins创建和授权


 mkdir -p /usr/local/jenkins
chmod 777 /usr/local/jenkins



这里说一下linux安装maven
1:先是在maven官方下载地址Maven – Download Apache Maven选择了3.8.8的下载云服务器使用jenkins+docker自动化部署SpringBoot项目

 然后直接拖进机器里面,因为我的宿主机maven地址是/usr/local/maven
所以你也相对应创建文件夹就可以了。
然后解压
tar zxvf apache-maven-3.8.8-bin.tar.gz

然后在/conf/settings.xml修改镜像地址和本地仓库路径

先创建ck文件夹 

<localRepository>/usr/local/maven/apache-maven-3.8.8/ck</localRepository>
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

云服务器使用jenkins+docker自动化部署SpringBoot项目 云服务器使用jenkins+docker自动化部署SpringBoot项目 

 然后最重要的是要配置maven环境变量,编辑:vi /etc/profile 文件,翻到最后一行加上 export MAVEN_HOME=/usr/local/apache-maven-3.6.3 export PATH= P A T H : PATH: PATH:MAVEN_HOME/bin 保存退出,如下图:
云服务器使用jenkins+docker自动化部署SpringBoot项目

 其中MAVEN_HOME一定要是你自己的maven路径!!!!!!

重新加载一下,source /etc/profile 使新增配置生效

输入命令:mvn -v云服务器使用jenkins+docker自动化部署SpringBoot项目

 看到版本号就说明安装好了

回到Jenkins
访问地址是:你的服务器IP地址:端口号 ,这个端口号是刚刚docker run 命令映射的端口号10240到这个页面稍微等等.....................
云服务器使用jenkins+docker自动化部署SpringBoot项目

 云服务器使用jenkins+docker自动化部署SpringBoot项目

 //查看jenkins首次登录的密码
cat /usr/local/jenkins/secrets/initialAdminPassword(这是我的路径)

选择安装推荐插件
云服务器使用jenkins+docker自动化部署SpringBoot项目

 云服务器使用jenkins+docker自动化部署SpringBoot项目

 jdk可有可无

云服务器使用jenkins+docker自动化部署SpringBoot项目

云服务器使用jenkins+docker自动化部署SpringBoot项目 配置好全局之后,新建一个项目(也可以先去下载一个Maven Integration plugin的插件然后新建一个然后新建一个maven项目)但是构建一个自由风格的项目也是可以的

 云服务器使用jenkins+docker自动化部署SpringBoot项目

 云服务器使用jenkins+docker自动化部署SpringBoot项目

 云服务器使用jenkins+docker自动化部署SpringBoot项目

云服务器使用jenkins+docker自动化部署SpringBoot项目

在使用Git作未源码管理时,必须保证源码中项目根目录文件下有编写好的Dockerfile文件 

云服务器使用jenkins+docker自动化部署SpringBoot项目

 文件内容如下:

云服务器使用jenkins+docker自动化部署SpringBoot项目

 云服务器使用jenkins+docker自动化部署SpringBoot项目

 云服务器使用jenkins+docker自动化部署SpringBoot项目

 云服务器使用jenkins+docker自动化部署SpringBoot项目

没有红色提示就成功连接仓库了

指定源码的分支云服务器使用jenkins+docker自动化部署SpringBoot项目

其余不用管,直接来到构建 

 云服务器使用jenkins+docker自动化部署SpringBoot项目

执行shell,输入shell脚本  

云服务器使用jenkins+docker自动化部署SpringBoot项目

#!/bin/bash
#maven打包
/usr/local/maven/bin/mvn clean package -Dmaven.test.skip=true
echo 'package ok!'
echo 'build start!'
cd ./
service_name="education_back"
service_prot=8887
#查看镜像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
    echo "exist $service_name image,IID=$IID"
    #删除镜像
    docker rmi -f $service_name
    echo "delete $service_name image"
    #构建
    docker build -t $service_name .
    echo "build $service_name image"
else
    echo "no exist $service_name image,build docker"
    #构建
    docker build -t $service_name .
    echo "build $service_name image"
fi
#查看容器id
CID=$(docker ps | grep "$service_name" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
    echo "exist $service_name container,CID=$CID"
    #停止
    docker stop $service_name
    #删除容器
    docker rm $service_name
else
    echo "no exist $service_name container"
fi
#启动
docker run -d -p $service_prot:$service_prot -v /data/app/logs:/data/app/logs --name $service_name $service_name
#查看启动日志
#docker logs -f  $service_name

 这里说一下最后的

#启动
docker run -d -p $service_prot:$service_prot -v /data/app/logs:/data/app/logs --name $service_name $service_name

其中/data/app/logs是映射到宿主机的/data/app/logs,因为我这个项目里面使用了logback.xml,所以要用到这个路径的文件夹

云服务器使用jenkins+docker自动化部署SpringBoot项目

 保存回到主页面!

出现刚刚新建的项目!点击立即构建

云服务器使用jenkins+docker自动化部署SpringBoot项目

控制台输出结果!构建成功!  

云服务器使用jenkins+docker自动化部署SpringBoot项目

 最后因为我使用的是云服务器,所以记得开放使用到的端口。文章来源地址https://www.toymoban.com/news/detail-428117.html

到了这里,关于云服务器使用jenkins+docker自动化部署SpringBoot项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年04月26日
    浏览(36)
  • 【已解决】aspose工具word转pdf文件,在linux服务器上使用docker-jenkins部署出现内容乱码问题

    因项目需求,需要将word格式文件转换pdf并添加水印,由于我在本地windos开发环境调试没有任何问题,一到测试环境linux发现乱码 例如: 由于项目是用docker+jenkins部署,经排查后发现原因是因为Linux跟windos中的字体不一样,windos中 c:windosuserFonts 目录中自带很多字体。但linux d

    2024年02月04日
    浏览(58)
  • docker+jenkins+gitee+shell 自动化部署微服务(基于若依)【详细完整版】

    提示:需基本熟悉docker命令、shell脚本、微服务部署、git命令、服务器基本命令、node、maven 服务器环境:Linux-EulerOS(华为自主研发服务器系统,与CentOS基本类似) 安装组件:docker20.10.19、openjdk1.8.0_191、maven3.8.6、git2.33.0、node16.17.1、npm9.1.2、jenkinsci/blueocean、docker-compose 远程工

    2023年04月11日
    浏览(44)
  • shell脚本——服务器巡检(自动化运维)

     目的   自动 获取集群内 多个主机 的内存、磁盘、cpu等信息 生成日志  准备    VMware虚拟主机IP在同一个网段(互相能ping通)             虚拟主机都有公钥免登录            修改主机IP  vi/etc/sysconfig/netwoek-scripts/ifcfg-ens160            设置主机名 hostnamectl set-ho

    2024年02月15日
    浏览(54)
  • webpack5基础--12_开发服务器&自动化

    每次写完代码都需要手动输入指令才能编译代码,太麻烦了,我们希望一切自动化 webpack.config.js 注意运行指令发生了变化 并且当你使用开发服务器时,所有代码都会在内存中编译打包,并不会输出到 dist 目录下。 开发时我们只关心代码能运行,有效果即可,至于代码被编译

    2024年03月10日
    浏览(110)
  • DNS:自动化配置 主/从/缓存 DNS服务器

    学习遇到 DNS 自动化部署的一个 Ansible 剧本,这里分享给小伙 部署使用 Bind9 ,包括主从 DNS 构建,缓存 DNS 构建,缓存使用 unbound 剧本相对简单 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它

    2024年02月13日
    浏览(43)
  • 自动化安装Nginx脚本:简化您的服务器配置

    在如今的网络世界中,Nginx作为一款高性能的Web服务器和反向代理服务器,扮演着至关重要的角色。然而,手动安装和配置Nginx可能会耗费大量时间和精力,特别是对于那些对Linux系统不太熟悉的人来说。幸运的是,我们为您带来了一个自动化的解决方案,能够简化整个Nginx安

    2024年02月10日
    浏览(45)
  • Webpack5入门到原理13:开发服务器&自动化

    每次写完代码都需要手动输入指令才能编译代码,太麻烦了,我们希望一切自动化 npm i webpack-dev-server -D webpack.config.js 注意运行指令发生了变化 并且当你使用开发服务器时,所有代码都会在内存中编译打包,并不会输出到 dist 目录下。 开发时我们只关心代码能运行,有效果即

    2024年01月20日
    浏览(47)
  • 华为openEuler在服务器自动化部署中的应用案例

    案例背景:         随着云计算和大数据技术的不断发展,服务器部署的效率和稳定性成为企业关注的焦点。华为 openEuler 作为一款开源的Linux发行版,提供了丰富的软件包管理和系统优化功能,非常适合用于构建高效稳定的服务器环境。 环境准备: 选择适配openEuler的服

    2024年02月19日
    浏览(44)
  • [Docker实现测试部署CI/CD----Jenkins集成相关服务器(3)]

             SonarScanner 是一种代码扫描工具,专门用来扫描和分析项目代码质量。扫描和分析完 成之后,会将结果写入到 SonarQube 服务器的数据库中,并在 SonarQube 平台显示这些数 据。         在 SonarQube 官网的帮助文档中可以下载 SonarScanner。这里下载一个 Linux 系统下使

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包