脚本自动化部署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


目录
相关文章
|
16天前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
34 9
|
17天前
|
JavaScript 数据库 Docker
一个有用的docker entrypoint脚本的范例
通过这个 Entrypoint 脚本,您可以确保在 Docker 容器启动时执行必要的初始化步骤,并且容器可以根据不同的运行时环境进行相应的配置和操作。这个范例展示了如何编写一个灵活且功能强大的 Entrypoint 脚本,使您的 Docker 容器更加可靠和易于管理。
25 3
|
22天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
2月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
2月前
|
监控 jenkins 持续交付
Docker和Jenkins有什么不同
【10月更文挑战第18天】Docker和Jenkins有什么不同
|
2月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
128 1
|
2月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
2月前
|
jenkins Java 持续交付
Docker搭建jenkins环境
这篇文章详细介绍了如何利用Docker搭建Jenkins环境,包括拉取Jenkins镜像、配置端口映射及初始化设置的步骤。
194 0
Docker搭建jenkins环境
|
2月前
|
运维 监控 jenkins
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程
|
2月前
|
Ubuntu jenkins 持续交付
Ubuntu系统 用docker安装jenkins
Ubuntu系统 用docker安装jenkins

热门文章

最新文章