docker+jenkins+k8s集群搭建系列二、docker+jenkins实现自动部署java项目(自动制作镜像、启动容器)-----单机跑通,下篇集群

本文主要是介绍docker+jenkins+k8s集群搭建系列二、docker+jenkins实现自动部署java项目(自动制作镜像、启动容器)-----单机跑通,下篇集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上篇文章docker+jenkins+k8s集群搭建系列一、centos安装docker,制作镜像(jar包,使用Dockerfile制作镜像),启动容器中我们学习了在docker环境下使用Dockerfile文件手动给项目制作镜像,启动容器部署项目,这篇文章我们把这个流程交给jenkins,实现项目代码提交即刻自动部署。
使用工具:
jdk:
链接:https://pan.baidu.com/s/1Tz4BNZ2S3mK76ZqC2m71Qg
提取码:7abc
jenkins:
链接:https://pan.baidu.com/s/1Uf3FE9uqpTbsAiPeR2Xe4g
提取码:7abc

一、安装jdk

获取到rpm格式的jdk安装包后上传到服务器的opt路径下:
在这里插入图片描述
1、使用命令解压rmp安装包:

rpm -ivh jdk-8u221-linux-x64.rpm

执行后正确结果如下图:
在这里插入图片描述
2、配置环境变量
命令:

vim /etc/profile

在打开的文件中下图所示的位置添加以下几行代码(如果没有使用我提供的jdk文件记得修改代码中您使用的jdk对应的版本号):

JAVA_HOME=/usr/java/jdk1.8.0_221
JRE_HOME=/usr/java/jdk1.8.0_221/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPAT

在这里插入图片描述
保存
执行下面命令使添加的配置生效:

source /etc/profile

执行结果如下图:
在这里插入图片描述

二、安装GIT

命令:

yum install git

执行正确结果如下图:
在这里插入图片描述

三、安装jenkins

将准备好的jenkins安装包也放入opt路径下
1、使用命令解压安装包
命令:

rpm -ivh jenkins-2.222.1-1.1.noarch.rpm

执行正确结果如下图:
在这里插入图片描述
2、配置端口以及权限
命令:

vim /etc/sysconfig/jenkins

①参照下面两行代码修改打开的文件:

#监听端口
JENKINS_PORT="8080"
#修改配置
$JENKINS_USER="root"

修改结果如下图:
在这里插入图片描述
②修改目录权限
命令:

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

执行正确结果如下:
在这里插入图片描述
③重启jenkins

service jenkins restart
ps -ef | grep jenkins

执行正确结果如下:
在这里插入图片描述
④查看jenkins初始密码:
命令:

cat /var/lib/jenkins/secrets/initialAdminPassword

执行正确结果如下:
在这里插入图片描述

复制上图中标出的字符串,这个就是jenkins首次登陆使用的密码。

四、登陆jenkins

使用服务器ip+8080端口的链接登陆:http://39.105.***.167:8080/
为什么使用8080端口?上面我们已经把jenkins的端口修改为8080了
访问后跳转页面如下:
在这里插入图片描述

这时候上面查看密码命令所查到的那行字符串就派上用场了,那个就是jenkins首次登陆的初始密码,输入上图中的管理员密码框中,点击继续。
在这里插入图片描述
选择安装推荐的插件,接下来就是漫长的等待。。。
其实可以加速一下这个过程:
进入jenkins安装目录:

cd /var/lib/jenkins/updates

执行如下命令替换default.json中的外网链接

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/http:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/http:\/\/www.baidu.com/g' default.json

执行结果如下图:
在这里插入图片描述
重启jenkins

service jenkins restart

执行结果如下图:
在这里插入图片描述
刷新jenkins登录页面:
在这里插入图片描述
设置我们的用户名和密码。
如果你的还需要初始密码,去执行上面我们查看jenkins密码的命令,复制下来再次登陆。
在这里插入图片描述
然后就进来了。

五、修改升级站点(按照提示找到升级站点)

系统管理======》插件管理======》高级======》升级站点
在这里插入图片描述
改为:
在这里插入图片描述
其实就是把升级站点的https改为http。

六、配置全局Maven工具

系统管理—全局工具配置:
页面下拉:
在这里插入图片描述
点击新增Maven
在这里插入图片描述
输入maven,保存。

七、新建任务

在这里插入图片描述
在这里插入图片描述
配置项目的阿里云code地址和用户名密码,不会使用阿里云CODE的可以点这里看看:
项目你可以自己新建一个,但是在项目的根目录下要放入一个名为Dockerfile的文件,文件内容如下图:
在这里插入图片描述
Dockerfile内容:

# 第一行必须指定基础容器,我们是java项目,运行需要jdk支撑
FROM java:8
# 维护者信息(可选)
MAINTAINER sunluming
# 拷贝我们项目的jar包到容器中
# 第一个star.jar为我们项目打出的jar包名称
# 第二个star.jar为容器名称
ADD star.jar star.jar
# 镜像启动容器后暴露的端口
EXPOSE 8080
# 第三个参数star.jar为容器名称
ENTRYPOINT ["java","-jar","star.jar"]

在这里插入图片描述
在这里插入图片描述
构建环境配置maven命令:
在这里插入图片描述
在这里插入图片描述
maven版本选择我们再前面配置的maven全局工具,目标输入命令:

clean package

在这里插入图片描述
在这里插入图片描述

命令:

rm -f target/Dockerfile
cp Dockerfile target/
cd target/
docker build -t star:last .
docker rm star -f
docker run -it -d -p 10086:8080 --name=stars star:last

保存,立即构建。在这里插入图片描述
报错如上,maven打包后找不到jar包,我在新建项目的时候选择的是打jar包,不知道为什么pom文件中没有规定打包格式那行代码,如下:
在这里插入图片描述
加上看看:
在这里插入图片描述
再试试构建:
在这里插入图片描述
又报这个错误,找不到那个jar包,这次苦苦思索,发现有可能是生成的jar包名称不对,去看看:
在这里插入图片描述

还真有点扯淡,这都后半夜了,卡在这里了,唉:
在这里插入图片描述
提交代码,再看看!
在这里插入图片描述
总算是成功了!

八、提交代码,自动部署项目

修改jenkins我们新建的star任务的配置,开启轮询SCM:
在这里插入图片描述
开启阿里云code的webhooks:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图中的链接:

http://39.**.**.167:8080/git/notifyCommit?url=https://code.aliyun.com/SunLuming/star.git

等号之前是固定写法,jenkins所在服务器的ip和端口
等号之后是我们测试项目的阿里云克隆地址
现在去本地修改测试controller返回的数据,然后提交代码:
在这里插入图片描述

刷新页面看看:
在这里插入图片描述

接口中添加的666已经放入项目中了,我们提交代码后,阿里云code的通知我们的jenkins,jenkins已经自动帮我们完成了代码部署。

到此为止,集群搭建的单机构建镜像,启动容器,自动部署代码结束了。

多练多练多练!!!

下篇文章在master节点安装k8s初始化:

docker+jenkins+k8s集群搭建系列三、master节点安装k8s并初始化

这篇关于docker+jenkins+k8s集群搭建系列二、docker+jenkins实现自动部署java项目(自动制作镜像、启动容器)-----单机跑通,下篇集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/737704

相关文章

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd