脚本自动化部署docker微服务,取代Jenkins

简介: 脚本自动化部署docker微服务,取代Jenkins

   由于Jenkins容器化部署,容器容器之间拷贝文件及其繁琐,如果在Jenkins部署在系统外层也需要配置复杂的流程才能实现微服务的自动化部署,本文主要通过脚本方式取代Jenkins实现自动化部署。脚本方式简单快捷,可以快速实现微服务部署、升级,避免Jenkins占用内存。

一、准备环境

1. 硬件环境

centos7.5

2. 软件环境

docker、jdk、maven(如果是gradle项目则安装gradle)、git

二、安装软件

1.安装docker

下载依赖

yum -y install yum-utils device-mapper-persistent-data lvm2

设置镜像源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

1. yum makacache fast
2. yum -y install docker-ce

启动docker

systemctl start docker

设置开机启动

systemctl enable docker

2.安装jdk

yum install java-1.8.0-openjdk.x86_64

查看是否可用

java -version

3.安装maven

wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc
yum -y install apache-maven

检查是否可用

mvn -version

4.安装git

yum install -y git

二、建立工作空间

首先定义/home目录为我们的工作空间,在这个工作空间下我们需要建立Gitspace、DockerBuilder、Shell这三个文件夹

1.Gitspace

代码工厂,用来存储各个项目的代码

2.DockerBuilder

Docker构建工厂,用来放置各个项目的dockerfile文件,生成docker镜像

3.Shell

用来存放启动脚本,意见化启动部署微服务

三、操作步骤

1.克隆代码

进入Gitspace目录,然后克隆我们需要自动化部署的项目

1. cd /home/Gitspace
2. git clone git clone http://xxxxx/xxxx/xxxxx.gi

2.配置Git免密拉取

进入Gitspace下的项目目录,然后ls -a可以看到有个.git的隐藏文件夹

vim .git/config

然后添加上下边两行

1. [credential]
2.     helper = store

3.编写dockerfile

进入/home/DockerBuilder目录新建项目文件夹,然后新建项目的dockerfile文件

FROM openjdk:8
MAINTAINER NETGATE
LABEL app="hb-server" version="0.0.1" by="eric"
COPY ./hb-server-0.0.1-SNAPSHOT.jar hb-server.jar
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
CMD java -jar hb-server.jar

4.编写shell脚本

进入/home/Shell文件夹,新建test.sh脚本

#!/bin/bash
#auth eric
#date 2021-12-13
#*********脚本入参#*********
appname=hb-server
#Git源码位置
gitsrc=/home/GitSpace/$appname
#Docker脚本位置
dockersrc=/home/DockerBuilder/$appname
#*********脚本入参#*********
cd $gitsrc && git pull origin master && mvn install -DskipTests
if [ $? -eq 0 ]; 
then
    echo "maven build success "
else 
    echo -e '\033[31m[ error ] gradle build faild \033[0m' && exit 1
fi
\cp -f $gitsrc/target/*.jar $dockersrc
echo '第二步:查看是否有镜像'
cd $dockersrc
imageresult=$(docker images |grep  $appname | wc -l)
echo $imageresult
if [ $imageresult -eq 0 ]; 
then
  echo "不存在镜像,需要重新初始化鏡像";
  docker build -t $appname .
  docker run -d --name $appname -p 8003:8003 --restart always $appname
else
  conid=$(docker ps |grep  $appname |awk '{print $1}')
  docker cp *.jar $conid:/$appname.jar
  docker restart $conid
  if [ $? -eq 0 ]; 
  then
    echo "发布成功!"
  else 
    echo -e '\033[31m[ error ] 发布失败 \033[0m' && exit 1
  fi
fi


5.执行shell脚本

sh test.sh


目录
相关文章
|
11月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
2564 10
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
10月前
|
Kubernetes jenkins 持续交付
Artifact Hub在Kubernetes中的应用:部署Jenkins的脚本整理
以上步骤断言清晰明确地描述了如何通过Artifact Hub 使用Helm图表来部署Kubernetes 中得Jenkis 实例,并且提供了相应得Shell 脚本作为执行指南. 这样不但能够帮助用户快速地进行操作, 同时也能够通过自定义参数来满足不同用户需求.
324 5
|
11月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
1153 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
791 60
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
1054 24
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
969 6
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
【10月更文挑战第22天】随着云计算和容器技术的快速发展,微服务架构逐渐成为现代企业级应用的首选架构。微服务架构将一个大型应用程序拆分为多个小型、独立的服务,每个服务负责完成一个特定的功能。这种架构具有灵活性、可扩展性和易于维护的特点。在构建微服务架构时,Docker和Kubernetes是两个不可或缺的工具,它们可以完美搭档,为微服务架构提供高效的支持。本文将从三个方面探讨Docker和Kubernetes在构建高效微服务架构中的应用:一是Docker和Kubernetes的基本概念;二是它们在微服务架构中的作用;三是通过实例讲解如何使用Docker和Kubernetes构建微服务架构。
362 6
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
539 1

热门文章

最新文章