通过docker compose配合shell脚本自动发布Java项目

1. 环境准备

docker环境
docker compose
linux(mac)系统
maven
git
Java项目

我这边准备的环境是Mac系统,使用的docker compose版本如下
docker compose版本

Java项目
我们自己的项目即可,配置好git以及ssh
我这里用一个示例(renren-generator)项目
在这里插入图片描述

2. docker compose相关文件
2.1 Dockerfile文件

ps . 我这个项目暴露出来的端口是7000

FROM java:8
EXPOSE 7000

VOLUME /tmp
ADD /target/renren-generator-1.0.0.jar  /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
2.2 docker-compose-renren-generator.yml文件

version: "3.7"
services:
  renren-generator:
    build:
      context: ./
      dockerfile: ./Dockerfile 
    expose:
      - "18090"
    restart: always
    image: public/renren-generator
    container_name: renren-generator
    ports:
      - 18090:7000
    environment:
      - "spring.profiles.active=dev"
3. shell脚本

脚本的大致的步骤:

  1. 拉取代码
  2. maven打包
  3. 镜像构建
  4. 停止容器
  5. 启动容器

ps . 要注意的是找好docker compress yml的文件路径

#!/bin/bash

RELEASE_VERSION=$1
if [ ! -n "$RELEASE_VERSION" ] ; then
echo "发布失败,请在命令后输入分支名或tag版本号,如:restart-backend release-1.0" && exit 1
fi

echo "当前发布版本号:"$RELEASE_VERSION

echo "starting deployment..."

# 获取当前脚本文件所在目录的绝对路径
CURR_DIR=`S=\`readlink "$0"\`; [ -z "$S" ] && S=$0; dirname $S`
echo $CURR_DIR

# 重新激活环境配置
source /etc/profile

# 切换到后端工程项目根路径
cd $CURR_DIR/../

git fetch && git checkout $1 && git pull || ! echo '[ERROR]Git拉取代码失败' || exit
echo "[check point] code update successful"

# maven打包构建
mvn clean package -Dmaven.test.skip=true || ! echo '[ERROR]Maven编译构建失败!' || exit
echo "[check point] package successful"

# 构建容器镜像
docker-compose -f renren-generator/docker-compose-renren-generator.yml build || ! echo '[ERROR]镜像构建失败' || exit
echo "[check point]  image build successful"

# 停止容器
docker-compose -f renren-generator/docker-compose-renren-generator.yml down || ! echo '[ERROR]停止容器失败' || exit
echo "[check point] down successful..."

# 启动容器
docker-compose -f renren-generator/docker-compose-renren-generator.yml up -d || ! echo '[ERROR]容器启动失败' || exit
echo "[check point] starting up..."

# 清理虚悬镜像
docker image prune -a -f || ! echo '[ERROR]虚悬镜像清理失败' || exit
echo "[check point] clean suspended images successful"

echo "[check point] Congratulations! startup successful!"
4. 启动脚本

当配置都完成后,启动脚本即可

 sudo sh ./restart-backend.sh master

在这里插入图片描述
发布完成,访问后台网址:http://localhost:18090/ (18090映射了7000端口)在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值