springboot docker jenkins 自动化部署并上传镜像的步骤详解

作者:言雨生百谷 时间:2023-07-28 01:54:38 

springboot + docker + jenkins自动化部署项目,jenkins、mysql、redis都是docker运行的,并且没有使用虚拟机,就在阿里云服务器(centos7)运行

1、前期准备工作不说了

2、在项目根目录下新建Dockerfile

springboot docker jenkins 自动化部署并上传镜像的步骤详解

Dockerfile文件内容为:


#基础镜像
FROM openjdk:12
#作者
MAINTAINER demo <demo@qq.com>

VOLUME /tmp
#指定配置文件,以及jar包在服务器上的路径
ENTRYPOINT ["java","-Dspring.profiles.active=prod","-jar","/lcy/work/tools/tools.jar"]
#暴露端口
EXPOSE 8092

3、在服务器找个目录新建一个.sh文件


#!/bin/sh
echo '================开始构建镜像=============='
#镜像名称
IMAGE_NAME='registry.cn-beijing.aliyuncs.com/???/tools'
#打包后在jenkins的地址
SOURCE_PATH='/lcy/jenkins/workspace/tools'
#Dockerfile执行jar包的地址
BASE_PATH='/lcy/work/tools'
echo IMAGE_NAME=$IMAGE_NAME

echo '================复制JAR包==================='
echo $SOURCE_PATH/target/tools-0.0.1-SNAPSHOT.jar
cp $SOURCE_PATH/target/tools-0.0.1-SNAPSHOT.jar $BASE_PATH/tools.jar
chmod -R 777 $BASE_PATH/tools.jar
echo '================复制完成===================='

echo '================当前docker版本=============='
docker -v

echo '================构建镜像开始================'
docker build -t $IMAGE_NAME -f $SOURCE_PATH/Dockerfile .
echo '================构建镜像结束================'
#输入要推送镜像的地址,根据镜像仓库提示的地址复制
echo '================推送镜像开始================'
docker login --username=??? --password=??? registry-vpc.cn-beijing.aliyuncs.com
docker push $IMAGE_NAME
echo '================推送镜像结束================'

echo '================获取容器id=================='
CID=$(docker ps | grep "$IMAGE_NAME" | awk '{print $1}')
echo 容器id=$CID

echo '================获取镜像id=================='
IID=$(docker images | grep "$IMAGE_NAME" | awk '{print $3}')
echo 镜像id=$IID

if [ -n "$CID" ]; then
echo 存在$IMAGE_NAME容器,停止容器并删除
docker stop tools
docker rm tools
else
echo 不存在$IMAGE_NAME容器,开始启动
docker run -p 8092:8092 -d --name tools -v $BASE_PATH:$BASE_PATH $IMAGE_NAME
fi

4、配置jenkins,执行新建的.sh文件(记得给好权限)其它的配置就不说了,比如github的配置

springboot docker jenkins 自动化部署并上传镜像的步骤详解

5、运行结果

springboot docker jenkins 自动化部署并上传镜像的步骤详解

本文由博客一文多发平台 OpenWrite 发布!

来源:http://www.cnblogs.com/hy5424/p/12818682.html

标签:springboot,docker,jenkins,自动化部署
0
投稿

猜你喜欢

  • HashMap 和 Hashtable的区别

    2022-11-01 06:34:47
  • Jsoup解析html实现招聘信息查询功能

    2022-01-08 19:38:07
  • C#创建安全的栈(Stack)存储结构

    2021-11-21 08:01:33
  • C#函数out多个返回值问题

    2022-11-14 21:58:55
  • Android利用GridView实现单选效果

    2022-08-12 03:31:50
  • MyBatis逆向⼯程的生成过程

    2023-11-28 17:29:22
  • python gstreamer实现视频快进/快退/循环播放功能

    2022-07-06 10:09:20
  • 关于Java中BeanMap进行对象与Map的相互转换问题

    2023-09-18 07:25:36
  • Ireport的安装与使用教程

    2021-08-08 00:16:43
  • Android实现悬浮窗效果

    2022-08-17 05:59:40
  • 深入探讨C#中的const、readonly关键字

    2023-01-20 23:42:25
  • Java GZIP压缩与解压缩代码实例

    2023-11-20 15:57:17
  • C#使用protobuf-net进行序列化的详细操作

    2021-11-17 02:32:41
  • Java内存模型中的虚拟机栈原理分析

    2022-02-08 04:41:33
  • Android Studio中生成aar文件及本地方式使用aar文件的方法

    2022-06-14 23:43:59
  • c# wpf使用GMap.NET类库,实现地图轨迹回放

    2023-04-20 06:46:27
  • Java 切割字符串的几种方式集合

    2023-12-19 00:02:04
  • 移动开发Spring Boot外置tomcat教程及解决方法

    2023-08-25 11:47:33
  • JAVA抽象类,接口,内部类详解

    2023-11-09 16:37:25
  • IDEA 热部署设置(JRebel插件激活)

    2021-08-25 08:14:39
  • asp之家 软件编程 m.aspxhome.com