springcloud服务器搭建-自动化部署docker+jenkins

Jenkins 微服务持续集成十五(Spring Cloud 微服务架构优化一:高可用生产部署服务器) 目录一、Jenkins + Docker + SpringCloud 部署方案优化二、Jenkins + Docker + SpringCloud 集群部署流程说明三、新增一台 Docker 服务器四、修改所有微服务配置1. eureka2. zuul3. admin4. gathering5. 提交微服务代码五、设计 Jenkins 集群项目的构建参数1. 安装 Extended Choice Parameter 插件支持多选框2. 创建流水线项目3. 添加参数六、构建测试1. 检查代码循环构建1.1 修 阅读详情

Hello world,every one!

接触过springcloud分布式系统好久了,今天来整理一下吧,笔者使用的是centos8阿里云服务器。
让我们开始吧
在这里插入图片描述

工具安装
安装上传下载工具
yum install lrzsz
git工具
yum -y install git
解压工具
yum install -y unzip zip
nginx安装
yum install nginx

docker安装
参考 https://www.runoob.com/docker/centos-docker-install.html

yum install -y yum-utils  device-mapper-persistent-data    lvm2
yum-config-manager   --add-repo  https://download.docker.com/linux/centos/docker-ce.repo

yum install docker-ce docker-ce-cli containerd.io

这里提示containerd.io版本太低,先升级:

wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install -y  containerd.io-1.2.6-3.3.el7.x86_64.rpm

再安装:

yum install docker-ce docker-ce-cli containerd.io

启动docker:

systemctl start docker

https://www.cnblogs.com/niloay/p/6261784.html

https://www.cnblogs.com/freedom-only/p/11294103.html

添加admin到docker组https://blog.youkuaiyun.com/ljx1528/article/details/86424864
使用admin账户管理应用:

useradd admin  

创建用户testuser

passwd admin 

给已创建的用户testuser设置密码

gpasswd -a admin docker

将admin添加到docker组,docker安装时已经自动建好了

newgrp docker 

刷新docker组

systemctl restart docker

创建docker ip组:可以根据自己的局域网段来

docker network create --subnet=192.168.2.0/16 shadownet

切换admin账户
拉取centos镜像:

docker pull centos
cd /home/admin
mkdir docker
cd docker
vi Dockerfile

将以下内容复制进去,第二行是时区同步,第三行设置系统语言,不同的基础镜像支持不同的语言包,可以进入容器执行locale -a查看容器所有语言包,后面的是配置java环境,jdk在后面会挂载到容器

FROM centos
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone
ENV LANG C.utf8
ENV JAVA_HOME /usr/local/java8
ENV PATH ${PATH}:${JAVA_HOME}/bin
CMD java -version

保存后创建镜像: 后面的.表示当前目录
docker build -t my-image:v1 .

准备挂载目录,可以将常用的部署脚本和部署jar放进去,这里使用-v /home/admin/app/common_script:/app/common_script -v /home/admin/app/gateway:/app,前面是宿主目录,后面是docker目录

创建容器:
以gateway和user两个应用为例:制定ip和端口映射,挂载,没有静态ip需求的可以把–net shadownet --ip 192.168.2.2 换成 --net=host , 注意host 模式只支持 Linux 宿主机。静态ip在阿里云服务器上测试没问题,在本地测试服务器上测试连不上宿主机,奇了怪了,,

docker run -itd -p 7000:7000 -m2048M --net shadownet --ip 172.16.0.3 --name user -v /home/admin/app/common_script:/app/common_script   -v /usr/local/java8:/usr/local/java8    -v /home/admin/app/user:/app my-image:v1 /bin/bash && 
docker run -itd -p 5201:5201 -m2048M --net shadownet --ip 172.16.0.4 --name store -v /home/admin/app/common_script:/app/common_script  -v /usr/local/java8:/usr/local/java8     -v /home/admin/app/store:/app my-image:v1 /bin/bash

这时候容器已经跑起来了,查看命令:

docker ps -a
docker stats

进入容器:

docker exec -it user /bin/bash
docker exec -it store /bin/bash

让容器执行脚本:

docker exec -it user /bin/sh /app/common_script/start_app.sh

初始化脚本:/app/common_script/init.sh

mkdir -p /app/jar
mkdir -p /app/log/start-sh
touch /app/log/start-sh/jar-start.log
chmod 777 /app/*

执行初始化脚本: &&是让命令顺序执行

docker exec -it user 	 /bin/sh /app/common_script/init.sh &&
docker exec -it store /bin/sh /app/common_script/init.sh

创建git本地代码库
先生成git证书免密登陆:

cd  /home/admin/.ssh
ssh-keygen -t rsa -C git用户名

一直回车然后拷贝id_rsa.pub到git仓库里面添加SSH公钥

mkdir -p /home/admin/source
cd  /home/admin/source
git clone git@代码库位置

这时已经基本完成,就差脚本了:

maven项目打包:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--配置为执行-->
                    <classifier>exec</classifier>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration><!-- 指定该Main Class为全局的唯一入口 -->
                    <mainClass>com.taobao.GateWayCenterApp</mainClass>
                    <!-- 指定打包输出位置 便于脚本将可执行jar放到容器挂载目录以便执行-->
                    <outputDirectory>../../packages</outputDirectory>
                    <layout>JAR</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

打包脚本:
mvn_package.sh:

#先更新项目
cd /home/admin/source/项目名称
echo "---------------start update--------------"
git reset --hard && git pull && cd ~
echo "---------------update end--------------"
#mvn打包
rm -rf
cd /home/admin/source/项目名称
#统一将打包后的jar放在packages中
rm -rf packages
mvn clean package

#更新jar
cd packages
echo "---------------backup start--------------"

#备份
directory=app_`date +%Y-%M-%d_%H_%M_%S`
mkdir /home/admin/bak/${directory}
cp * /home/admin/bak/${directory}/

echo "---------------backup end--------------"

单项目启动脚本

set -m;
#更新jar,这里将打包好的jar放到挂载目录并让容器执行启动脚本

cd /home/admin/source/项目名/packages
cp user-1.0.0-exec.jar /home/admin/app/user/jar/app.jar
docker exec -i user /bin/sh /app/common_script/start_app.sh

通用脚本start_app.sh

##判断jar是否启动
pid=`ps aux | grep jar | grep app | awk '{print $2}'`
if [ ! -z "$pid" ];then
          ps aux | grep jar | grep app | awk '{print $2}' | xargs kill -9
           echo "========================已杀死进当前app进程======================="
   else

             echo "========================jar进程不存在或已结束========================"

               echo "========================继续启动jar========================"

       fi
nohup  java -jar /app/jar/app.jar --spring.profiles.active=test >/app/log/log.log &
           echo "========================app启动成功========================" \
                   #记录jar启动
           date "+%Y-%m-%d %H:%M:%S"  >> /app/log/start-sh/jar-start.log


           tailf="tailf"
           if [  ! -n "$1" ] ;then
                            echo "you have not input a tailf word!"
                             elif [ "$1" = "$tailf" ];then
                                                tail -f /app/log/log.log
        fi

Jenkins部署
推荐 启动脚本及git关联部署:
https://blog.youkuaiyun.com/qq_35868811/article/details/90295913?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-8

这里使用yum安装jenkins一直获取不到对应的GPG证书,放弃了,直接下载war包搞起吧
忘记了怎么下了,汗~
然后运行jenkins:8080端口

java -jar jenkins.war &

复制提示的初始化密码去打开浏览器,127.0.0.1:8080
登录后初始化需要好一会儿
参考https://www.cnblogs.com/linjiqin/p/10969175.html

配置ssh服务器登录,远程执行命令
在这里插入图片描述
执行更新打包命令(图里面的Exec command):

source /etc/profile
source ~/.bashrc
sh /home/admin/mvn_package.sh

更新运行gateway项目,可以配置到jenkins Exec command:

source /etc/profile
source ~/.bashrc
cd /home/admin/source/项目名/packages
cp gateway-1.0.0-exec.jar /home/admin/app/user/jar/app.jar
docker exec -i gateway /bin/sh /app/common_script/start_app.sh tailf

其他springcloud项目可参考user来弄

其他:
nacos启动:
/usr/local/nacos/bin/startup.sh -m standalone
端口:8848

redis
端口:6379
redis启动:
/usr/local/redis/src/redis-server /usr/local/redis/src/redis.conf
redis配置:
vi /usr/local/redis/redis.conf
#bind 127.0.0.1
requirepass 密码
protected-mode no

nginx启动:
端口:80
nginx -c /etc/nginx/nginx.conf
nginx重启:nginx -s reload
配置文件 /etc/nginx/nginx.conf

jenkins启动:
nohup java -jar /root/jenkins.war &

Jenkins—— Jenkins+Docker+SpringCloud微服务持续集成 Jenkins+Docker+SpringCloud微服务持续集成Jenkins+Docker+SpringCloud持续集成流程说明SpringCloud微服务源码概述本地部署SpringCloud微服务部署前端静态web网站 Jenkins+Docker+SpringCloud持续集成流程说明 开发人员每天把代码提交到Gitlab代码仓库 Jenkins从Gitlab中拉取项目源码,编译并打成jar包,然后构建成Docker镜像,将镜像上传到Harbor私有仓库 Jenkins发送SSH远程命令,让 阅读详情

相关推荐

搭建Jenkins+springcloud一键自动部署

用jenkins 实现项目自动部署笔记1、目的1、一键实现项目自动构建打包发布(用于生产环境)2、实现代码提交到代码仓库立刻自动打包部署(用于测试环境)2、操作环境centosjdkmavenjenkinsgiteegitdocker2、实现思路1、生产环境合并代码开发分支到master分支,准备发布最新代码jenkins一键点击发布jenkins从代码仓库拉取最新代码通过maven进行打包把jar包打包成镜像,上传到自己的镜像仓库私服jenkins通知应用服务器拉取最新镜像应用服务器拉取最新镜像,运行新容

weixin_44078653的博客 7399

Docker+jenkins自动化部署SpringCloud微服务项目

Docker+jenkins自动化部署SpringCloud微服务项目

lzbshaaa的博客 1274

jenkins+docker-compose部署springcloud项目

一.配置docker环境 注意:本docker系统镜像环境为centos7 ,通过docker pull 拉取的时候一定要指定版本,不然拉取的是最新的是centos8 1.项目的基础环境 centos7 ssh jdk8 tomcat8 (1) docker pull centos:7 (2)找一个文件路径存放编写cento7-ssh的Dockerfile文件 FROM centos:7 MAIN...

it_ape的博客 1996

Docker搭建Jenkins并部署SpringCloud服务

Docker搭建Jenkins,部署SpringCloud项目

weixin_43577131的博客 2283

Docker+Jenkins+GitLab+Maven+SpringBoot自动化构建镜像与部署

1、前言与初衷 本文章会涉及Docker常见命令基础知识点结合不同场景实操一起使用。 本文章会涉及结合工作过程中部署不同环境服务器的项目案例场景为初心进行实际细讲。 本文章主要讲述Docker、Jenkins、GitLab、Git、JDK、SpringBoot、Maven等技术结合实现自动化运维部署(DevOps)应用工程,适合SpringCloud部署。 初衷想法:在学习过程中遇到比较有趣的问题、然而花了点心血和时间去整理,然而进行梳理出来一份文章比较完整有知识体系的DevOps自动化构建与部署工

jiaowoshangege的博客 2757

Jenkins+Docker+Harbor+SpringCloud微服务持续集成自动化部署(上)

4 Jenkins+Docker+SpringCloud微服务持续集成(上) 4.1 Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 1)开发人员每天把代码提交到Gitlab代码仓库 2)Jenkins从Gitlab中拉取项目源码,编译并打成jar包,然后构建成Docker镜像,将镜像上传到Harbor私有仓库。 3)Jenkins发送SSH远程命令,让生产部署服务器到Harbor私有仓库拉取镜像到本地,然后创建容器。 4)最后,用户可以访问到容器 服务列表 ..

weixin_42469135的博客 1569

docker + jenkins + springcloud 打包,部署,发布

折腾好久了呀~今天终于出了一点点成果,全部是辛酸,含泪写完这篇博客。 SpringCloud教程:方志朋 Jenkins 安装:推荐这位老铁的博客(centos版本) Docker CE 安装:推荐这位小哥哥的博客(centos版本) Jenkins全局工具配置:jdk、maven以及git路径的配置 Jenkins 与 Github集成:推荐博客 开始: ...

一次次失望后的平静 5597

保姆级教程:在Windows/Mac上搞定SAM 3的权重和BPE文件下载与配置

本文提供了一份详细的SAM 3权重和BPE文件下载与配置指南,特别针对国内开发者遇到的下载缓慢和配置错误问题。通过国内镜像源快速获取文件,并详细介绍了环境检查、文件下载、路径配置及常见问题解决方案,帮助开发者高效完成SAM 3的部署与使用。

weixin_42547431的博客 551

Jenkins+Docker+SpringCloud微服务持续集成之集群部署

在启动微服务的时候,加入参数: spring.profiles.active 来读取对应的配置。idea中修改注册中心eureka的配置,单节点换成集群。从Jenkins服务器拷贝公钥到docker2远程服务器。添加构建参数——》多选框:部署服务器。逗号必须得是英文,否则出错。成功访问前端数据库中的数据。系统配置中添加远程服务器。查看eureka注册结果。该插件可以支持多选框。推送上传gitlab。

quanzhan_King的博客 3426

UE5 AI寻路全攻略:从Nav Mesh基础到动态障碍与多模式导航

在游戏开发中,AI寻路是赋予非玩家角色自主移动能力的关键技术。其核心原理是通过预计算或实时生成一个表示可行走区域的导航网格,AI路径查找算法(如A*)在此网格上规划最优路径。这项技术的价值在于,它能极大提升游戏世界的真实感和交互性,使NPC能够智能地绕开障碍、穿越复杂地形,广泛应用于开放世界、RPG、策略游戏等多种场景。本文聚焦于虚幻引擎5的寻路系统,深入探讨其寻路网格体配置。针对动态环境挑战,文章详细介绍了如何利用寻路修饰体积和动态障碍物组件实现导航网格的实时更新;同时,针对游泳、飞行等特殊移动需求,解析

weixin_33226816的博客 362

银河麒麟服务器操作系统V10SP3 U盘安装中“基础软件仓库错误”的排查与修复指南

本文针对在无网络环境下使用U盘安装银河麒麟服务器操作系统V10SP3时,遇到的“基础软件仓库错误”问题,提供了详细的排查与修复指南。核心解决方案是通过进入救援模式,使用lsblk命令确定U盘实际设备路径,并在系统引导时手动添加inst.repo内核参数来指定安装源,从而绕过安装程序的自动探测故障,确保安装流程顺利进行。

ik67890123的博客 1197

从0到1:SpringCloud微服务Jenkins+Docker自动化部署实战指南

你是否还在为微服务部署的繁琐流程而头疼?手动打包、上传服务器、启停服务不仅效率低下,还容易出错。本文将带你使用Jenkins+Docker实现SpringCloud微服务脚手架的全自动化部署,彻底解放双手!读完本文你将掌握: - 自动化部署环境的快速搭建 - Jenkins任务配置与Docker镜像构建 - 微服务多环境自动部署流程 - 常见问题的排查与解决方法 ## 为什么需要自动化部署? ...

gitblog_00308的博客 958

activiti(六):activiti7的数据表和字段的解释

介绍activiti7的数据表和各表字段的含义,对于学习activiti7工作流引擎的运行过程很有帮助!

no problem的博客 1万+

jenkins自动构建SpringCloud

jenkins依赖docker-compose自动部署SpringCloud和vue项目本机环境jenkins配置下载war包war包部署设置开机自启访问Jenkins插件配置全局工具配置配置GitLab创建任务vue项目springcloud项目 本机环境 CentOS: CentOS Linux release 7.9.2009 (Core) jdk: Java(TM) SE Runtime Environment (build 1.8.0_281-b09) jenkins配置 Jenkins是一个开

微笑听雨 2万+

Python 爬虫实战:爬取万方数据文献信息

本文介绍了基于Python爬虫技术合规获取万方数据文献信息的方法。通过分析万方数据的请求机制与反爬策略,采用requests库结合Session维持合法会话,实现了文献标题、摘要、作者等核心元数据的提取。文章详细讲解了Token验证、动态请求构造、JSON数据解析等关键技术,并提供了完整可运行代码。同时强调严格遵守《万方数据知识服务平台用户协议》,控制请求频率,仅限学术研究使用。该方案为万方数据文献信息获取提供了标准化解决方案,支持数据清洗、结构化存储及后续分析应用。

2503_91057718的博客 2138

YOLO26升级:CVPR2026 WDAM小波方向注意力+C2PSA,频域高频引导低频暗区复原,小目标检测精度跃升!

将 WDAM 引入 YOLO 的 C2PSA 模块,核心优势在于用极低的计算开销,为模型装上了一个“结构感知”的增强器,尤其适合处理密集小目标与边缘部署场景。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 375

SpringCloud+Jenkins+Docker持续部署积木学堂[谷粒学院]

【项目笔记】SpringCloud+Jenkins+Docker持续部署积木学堂 写在前面 本项目搞了三天两夜。。 好多东西不太理解,网上也搜不到答案,只能一点点的试,而且最开始目的是想压榨到服务器极限, 最后虽然成功部署,可是一段时间就会有微服务被kill掉。所以跟朋友又借了一台,各占一半内存,稳定性还高。 先说下准备工作 A:部署了九个微服务 (需要安装git,java,maven,docker) B:部署了Mysql,Nacos,Redis,前端项目(需要安装docker,node,nginx)

积木 2629

EMB电子机械制动执行器五大核心部件选型解析

本文介绍了EMB电子机械制动执行器五大核心部件的选型方案:采用无刷直流电机作为驱动源,兼具高扭矩和快速响应特性;选用滚珠丝杠传动机构,实现高效旋转-直线转换;行星齿轮减速器满足紧凑空间内的增扭需求;QT450-QT550材质的钳体确保刚度要求;应变片式压力传感器实现夹紧力精确测量。各部件选型综合考虑了性能、可靠性和空间限制,为EMB系统设计提供了完整解决方案。

m0_59012156的博客 1743

jenkins+springcloud+docker+git自动化部署项目容器

jenkins+springcloud+docker自动化部署项目容器 1. 配置项目打包自动构建镜像到服务器 创建src/main/docker/dockerfile打包文件 将配置中的pic-userrole服务名改为自己的服务名 FROM java:8 VOLUME /tmp ADD pic-userrole-0.0.1-SNAPSHOT.jar pic-userrole.jar RUN ...

weixin_45183896的博客 939

SLAM 轨迹评估工具——EVO安装、使用介绍

evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。

u010196944的博客 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jenkins+maven+docker+gitlab私服,自动化部署springcloud(内置脚本)

jenkins+maven+docker+gitlab私服,自动化部署 一.准备说明: 第1步:springcloud项目中定义dockerfile如下:(每个参数的说明自行百度) FROM java:8 VOLUME /tmp ADD target/xxx-gateway.jar xxx-gateway.jar RUN bash -c 'touch /xxx-gateway.jar' EXPOSE 8848 ENTRYPOINT ["java","-jar","-Xms4g", "-Xmx4g","-Xm

柚稚与酒 2659

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jenkins+springcloud+docker 自动化打包部署流程

jenkins+springcloud+docker 自动化打包部署流程

qq_39009944的博客 4883

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Jenkins+Docker+Gitee+SpringBoot自动化部署

当我们使用传统的开发方式开发后台系统时,每写完一个功能点就需要重新运行一下项目,然后进行测试,如果是项目比较小还可以,但是如果项目比较大的话,由于涉及的人员比较多,这种开发方式就比较麻烦。基于此,我们就需要使用Jenkins配合Gitee搭建一个自动化部署平台,并将代码托管到服务器上,这样减轻了本地的电脑压力,也解放了部署的流程。 1, 搭建Jenkins平台 首先,我们需要搭建一下Jenkins自动化构建平台。首先,我们需要安装Docker,然后在Docker中安装Jenkins,安装的命令如下: # 安

xiangzhihong8的专栏 1810

SpringCloud+Docker+Jenkins+GitLab+Maven实现自动化构建与部署实战

本文详细介绍了基于Docker+Jenkins+GitLab+Maven的SpringBoot/SpringCloud自动化构建与部署方案。主要内容包括:1)DevOps概念解析;2)CentOS7环境下的JDK、Maven、Git等基础环境搭建;3)Docker环境下GitLab、Jenkins等核心组件安装;4)SpringBoot项目配置及Docker镜像构建详解;5)通过Shell脚本实现自动化构建、镜像推送和部署;6)Jenkins参数化构建配置及多环境部署实践。文章提供了完整的代码示例和配置说明

油墨香^-^的博客 539

SpringCloud+Docker+Jenkins+GitLab+Maven 实现自动化构建与部署实战

点击关注公众号,回复“1024”获取2TB学习资源!前言与初衷本文章会涉及Docker常见命令基础知识点结合不同场景实操一起使用。本文章会涉及结合工作过程中部署不同环境服务器的项目案例场景...

民工哥的博客 1353
下一篇: 摘抄:js简单的id, pid数据生成树状结构
zjy_java
博客等级 码龄8年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值