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

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

Spring中配置ContextLoaderListener方式

《Spring中配置ContextLoaderListener方式》:本文主要介绍Spring中配置ContextLoaderListener方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录Spring中配置ContextLoaderLishttp://www.chinasem.cntene

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

Java Optional避免空指针异常的实现

《JavaOptional避免空指针异常的实现》空指针异常一直是困扰开发者的常见问题之一,本文主要介绍了JavaOptional避免空指针异常的实现,帮助开发者编写更健壮、可读性更高的代码,减少因... 目录一、Optional 概述二、Optional 的创建三、Optional 的常用方法四、Optio