docker+jenkins 实现自动化部署

news2024/11/27 7:34:50

前期准备工作

工欲善其事必先利其器,所以前期的准备工作必须做好,那么我们要实现自动化部署,必须提前准备什么呢?哈哈哈,可能有一些小伙伴已经猜到了,我们需要一台自己的服务器,这里博主使用的自己够买一台腾讯云的轻量服务器,折扣完了才一百多块钱,当然小伙伴也可以考虑购买阿里云或者自己使用虚拟机来搭建环境实现自动化部署,好了下面进入正题

腾讯云服务器 : 购买

安装

1.先安装docker环境

如果在购买服务器选择docker环境的,这里就不需要在服务器先安装docker环境了,没有安装的要先安装docker环境可以参照博主这篇我和docker有个约会这篇文章将docker环境先安装好

2.使用docker-compose 编排的方式依次安装网关,docker的图形化管理界面portainer,jenkins,java,mysql,以及nginx

eg:如下图所示
在这里插入图片描述

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

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

3.初始化docker图像化管理工具portainer

安装完portainer图形化管理工具后,可以管理部署在docker中容器,通过公网ip加绑定宿主机对外暴露端口进行访问,如下图所示
在这里插入图片描述

4.初始化jenkins

安装完jenkins后,跟portainer一样,也可以通过暴露的端口访问,但是刚开始的时候进入jenkins,要从服务器获取jenkins初始密码去解锁jenkins

在这里插入图片描述
在网页中,输入密码然后继续。接下来会让我们选择需要的插件,第一次使用,安装推荐插件即可
在这里插入图片描述

在这里插入图片描述

如果因为网络原因安装失败,可以点击重试按钮进行重试。

接下来创建一个新的用户,也可以不创建新的用户,直接使用 admin 即可:

在这里插入图片描述
设置 Jenkins 访问地址:

在这里插入图片描述

设置完成后,我们点击保存并完成按钮即可。接下来就可以进入到 Jenkins 中了。

整个过程执行完毕后,建议通过图形化管理工具重启一下 Jenkins,因为有的插件需要重启之后才会生效。

4.1 安装插件

Jenkins 启动成功之后,接下来我们安装必要的插件:

  • Maven Integration:Maven 构建工具
  • Publish Over SSH:整个工具,将来把 Jenkins 打包好的 jar 上传到应用服务器上。
  • Gitee:协助使用 Gitee 仓库。
  • local
  • Backup
  • Fail The Build Plugin

安装步骤如下:

在这里插入图片描述
然后在可选插件中,搜索 Maven Integration 和 Publish Over SSH 以及 Gitee 等插件:

在这里插入图片描述
搜索完成后,点击 Install without restart。

安装成功之后,重启 Jenkins。

在这里插入图片描述
建议执行 docker restart jenkins 去重启,点击网页上的重启,会卡很久,还是执行 docker 重启命令靠谱一些。

4.2 配置jenkins

插件安装成功之后,接下来我们开启 Jenkins 的配置,在正式开始配置之前,先做一点准备工作。

这个需要我们提前准备好 Maven,服务器我们已经编排了jdk了,只需要提前准备 Maven 即可。为了避免权限问题,我们可以直接将 Maven 上传到 jenkins 容器中,然后去配置即可。

如下将宿主机中的 maven 拷贝到 Jenkins 容器中:

接下来就可以开始配置了,配置的位置如下图:

在这里插入图片描述
名字随意取,MAVEN_HOME 则是前面刚刚上传到服务器容器中的 MAVEN 目录。

4.3配置git

配置 Git,由于 Jenkins 容器中已经存在 git 了,所以这里不需要额外安装 git,默认即可。

在这里插入图片描述
所有都配置完成,点击保存按钮。

4.4 远程的凭证配置

4.4.1应用服务器信息

应用服务器,就是将来 Jenkins 将代码构建成 jar 包后,要上传的服务器的信息(地址、用户名以及密码)。

配置步骤如下,首先找到配置的位置:

在这里插入图片描述
往下拉找到 Publish Over SSH,然后点击新增,开始配置,Hostname 位置填写你服务器的域名或者 IP:
在这里插入图片描述
配置成功后,点击测试连接进行测试,确保连接是成功的。

有的小伙伴反馈这里用户名密码会导致 jar 包上传失败,要在应用服务器上生成 ssh 密钥对,然后将私钥配置给 Jenkins(这块大家结合自己情况来看,如果后面 jar 上传失败,可以回来改一下这里)。

4.4.2 配置凭证

要根据这些凭证,才能从 Gitee ,gitlab,码云等上拉取代码下来,点击 添加->Jenkins,添加凭证:

在这里插入图片描述

5.开始一个项目构建

首先我们新建一个任务
在这里插入图片描述

接下来我们选择构建一个 Maven 项目
在这里插入图片描述
点击确定之后,拉到源码管理位置,开始配置。

首先选择 Git,填入gitee/gitlab/码云上的仓库地址,然后凭证就写 gitee/gitlab/码云 的用户名/密码。

在这里插入图片描述

选择之前配置好的全局凭证

在这里插入图片描述
接下来输入项目构建命令,将来 Jenkins 从 Gitee 上拉取代码下来之后,就执行该命令对项目进行打包:
在这里插入图片描述
最后,配置上传构建好的文件,并执行启动命令,如下
在这里插入图片描述
在这里插入图片描述

根据上图的配置,我们使用 root 用户登录,root 登录成功之后,默认进入到 /root 目录下,接下来会自动进入到 data 目录,然后我们的 jar 包就上传到这个位置上。

然后我们在应用服务器上也提前准备好一个编排好文件叫restun-consumer-admin.yml,位于 /root/docker-develop/project/test 目录下,这个文件内容如下:

在这里插入图片描述
至此,这个项目就配置完成了。

保存之后,点击立即构建按钮,就可以开始构建了:
在这里插入图片描述

开始构建之后,可以点击构建按钮,查看构建过程:

在这里插入图片描述
点击控制台输出,可以查看整个构建过程:在这里插入图片描述
构建完成后,通过docker图形化管理工具,就可以看到我们的应用程序已经跑起来了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/742415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

你不会还不知道什么是企业博客吧?

企业博客是指由企业或组织创建的在线平台,主要是用于发布与其业务、产品、行业和相关主题相关的文章、信息和观点。通过企业博客可以实现促进品牌推广、客户培养和业务发展等,对于企业发展有极其重要的作用。 企业博客的目的 1.提供有关企业产品和服务的…

Pytorch基本使用—参数初始化

深度学习模型参数初始化是指在训练深度神经网络时,对网络的权重和偏置进行初始化的过程。合适的参数初始化可以加速模型的收敛,并提高模型的性能。 ✨ 1 基本介绍 在深度学习中,常用的参数初始化方法有以下几种: 零初始化&#…

SwinIR Transformer训练教程(使用自己的数据集)

使用自己的数据集训练SwinIR Transformer SwinIR Transformer图像超分辨率重建训练教程 目录 使用自己的数据集训练SwinIR Transformer一、使用MATLAB对数据集进行BICUBIC插值下采样二、使用MATLAB对数据集进行BICUBIC插值下采样三、训练3.1 下载训练源代码3.2 修改json文件3.…

Servlet文档1

Servlet 1、如何去书写一个servlet2、如何去访问一个servlet3、如何去快速创建一个servlet4、web中一些路径的访问分析5、servlet一些配置项(servletConfig)6、web项目的配置项(servletContext)servlet简介 Servlet 是sun公司提供…

记录一次unraid中毒经历(xmrig)

起因 :一大早发现unraid小主机风扇狂转,CPU一半线程拉满 类似这样,只不过是左边一列所有核 执行top命令,发现xmrig占用 cpu 790 kill [ID] find / -name xmrig rm /bin/xmrig成功,CPU功耗马上下降,但是几…

k8s 就绪探针

【k8s 系列】k8s 学习二十,就绪探针 提起探针,不知兄dei 们是否有印象,之前我们分享过存活探针,分享存活探针是如何确保异常容器自动重启来保持应用程序的正常运行,感兴趣的可以查看文章 k8s 系列k8s 学习十七&#x…

揭示实时定位控件在配送小程序中的作用与价值

随着互联网技术的发展,配送小程序在生活中扮演着越来越重要的角色。而实时定位控件作为配送小程序中不可或缺的一部分,具有极大的作用与必要性。本文将以【乔拓云】第三方工具为例子,从商家的方面,对实时定位控件在配送小程序中的…

我说MySQL每张表最好不超过2000万条数据,面试官让我回去等通知?

事情是这样的 下面是我朋友的面试记录: 面试官:讲一下你实习做了什么。 朋友:我在实习期间做了一个存储用户操作记录的功能,主要是从MQ获取上游服务发送过来的用户操作信息,然后把这些信息存到MySQL里面,…

怎么在unity3D工程中导入Newtonsoft.Json

怎么在unity3D工程中导入Newtonsoft.Json unity旧版本自带的json接口太难用了(JsonUtility),不能序列化字典和列表等对象,只能序列化基础类型对象,所以基本等于没有。 Newtonsoft.Json-for-Unity-master 的github下载…

【Linux后端服务器开发】Shell外壳——命令行解释器

目录 一、Shell外壳概述 二、描述Shell外壳原理的生动例子 三、C语言模拟实现Shell外壳 一、Shell外壳概述 在狭义上 , 我们称Linux操作系统的内核为 Linux 在广义上 , Linux发行版 Linux内核 外壳程序 就比如市面上现在的redhat, centos, ubuntu等等我们耳熟能详的Linux发…

一文教会你风格迁移CycleGAN从入门到高阶再到最终成功魔改(附成功魔改代码)

专栏导读 🔥🔥本文已收录于专栏:《风格迁移之从入门到成功魔改》,欢迎免费订阅 ​此专栏用于带你从零基础学会什么是风格迁移,风格迁移有什么作用,传统做法和Cyclegan的原理,及其优缺点&#x…

Docker NGINX 加载Geoip模板

前提环境: Docker 环境 涉及参考文档: ngx_http_geoip_module 模块Loki NGINX Service MeshGeoIP IP库 一、下载GeoIP IP库 二、配置Nginx主配置文件 vim /data/nginx/MangoMoh/dos/nginx.confuser nginx; worker_processes auto;error_log /var…

ncnn源码阅读(三)----数据结构Mat

文章目录 数据结构Mat成员变量成员方法构造函数1、普通构造函数2、外部数据指针构造函数3、拷贝构造函数和opertor 深拷贝函数类型转换引用计数的实现其他数据操作函数 数据结构Mat 个人认为一个框架中的比较核心的两个点,一个是数据结构,一个任务调度…

STM32F407ZGT6正点原子F4探索者开发板 -- 跑马灯例程

1. USB 转USART1 烧录工具 FlyMcu 2. FlyMcu 配置 3. 查看开发板原理图,LED0、LED1 硬件连接 LED0 - PF9 LED1 - PF10 PF9 0, LED0 亮,PF9 1,LED0 灭 PF10 0, LED1 亮,PF10 1,LED1 灭 4.…

cesium 实现多颗卫星与多颗地面站雷达通信效果

最主要的部分是计算空间内两点之间的距离以及卫星对地点是否在雷达扫描范围内 先看效果 1.计算空间内两点之间的距离 //计算距离 function distance(point1, point2) {var point1cartographic = Cesium.Cartographic.fromCartesian(point1);var</

医师访问学者申请需要注意什么?

医师访问学者申请是医学领域中一项重要的学术交流和合作方式。在准备申请时&#xff0c;有几个关键点需要注意&#xff0c;下面就随知识人网小编一起来看一看。 1. 目标和动机&#xff1a;明确访问学者的目标和动机&#xff0c;例如学术研究、专业发展、文化交流等。清楚表达你…

产品经理学习画原型-登录界面(交互样式设置)

经过第一阶段学习&#xff0c;目前效果如下&#xff1a; 下面我们来加入交互样式效果&#xff1a; 效果&#xff1a;

[SSM]MyBatis的缓存与逆向工程

目录 十三、MyBatis的缓存 13.1一级缓存 13.2二级缓存 13.3MyBatis集成EhCache 十四、MyBatis的逆向工程 14.1逆向工程配置与生成 14.2测试 十三、MyBatis的缓存 缓存&#xff1a;cache 缓存的作用&#xff1a;通过减少IO的方式&#xff0c;来提高程序的执行效率。 myb…

【分布式】 ELK 企业级日志分析系统 二

目录 一、FilebeatELK 部署1.1 环境部署 二、grok 正则捕获插件mutate 数据修改插件multiline 多行合并插件date 时间处理插件 一、FilebeatELK 部署 1.1 环境部署 Node1节点&#xff08;2C/4G&#xff09;&#xff1a;node1/192.168.137.101 Elasticsearch Node2节点&…

【C++顺序容器】forward_list的成员函数和非成员函数

目录 forward_list 1. forward_list的成员函数 1.1 构造、析构和赋值运算符重载 1.1.1 构造函数 1.1.2 析构函数 1.1.3 赋值运算符重载 1.2 迭代器 1.3 容量 1.4 元素访问 1.4.1 遍历方法 1.5 修改器 1.6 操作 1.7 观察者 2. forward_list的非成员函数 forward_l…