首页 > 系统服务 > 详细

结合docker发布后端项目(基于gradle包管理)的shell脚本

时间:2019-11-23 12:24:39      阅读:75      评论:0      收藏:0      [点我收藏+]

结合docker发布后端项目(基于gradle包管理)的shell脚本


本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记。

注:基于linux操作系统(敏感信息都进行了处理)

目前主流的前后端分离的项目中,常常在部署上线这个环节会遇到很多麻烦,这里我使用了docker进行部署,这段shell脚本我放在前端工程目录下,每次要部署上线时运行这个文件,可以很方便的帮助上线。注解都写在了代码中。
#!/usr/bin/env bash

// 以下使用变量存放配置信息
jarName="your_name-0.0.1-SNAPSHOT.jar"  
BUILD_PROFILE="prod"
port=7006
LOGIN_COMMAND="login --username=... -p=... registry.cn-shenzhen.aliyuncs.com"
DOCKER_NAME="your_name"
repo="registry.cn-shenzhen.aliyuncs.com/your_name/${DOCKER_NAME}:latest"
JOB_NAME=${DOCKER_NAME}
REMOTE_SERVER="root@100.100.100.100"

# Compile
echo Start to compile...  // 开始打包
./gradlew clean&& ./gradlew build -x test  // 使用gradle进行打包

cd ci  // 脚本存放在ci目录下,进入该目录
jarPath=../build/libs/${jarName} // 定位打包出来的路径
cp -rf ${jarPath} app.jar // 将打包后的jar包拷贝到ci目录下,同时更名为app.jar


# Docker
echo Start to build docker... // 开始构建docker镜像

// 以下通过Dockerfile文件构建镜像,Dockerfile会在另一篇博客中讲到
docker build \ 
-t ${DOCKER_NAME} --build-arg JAR_FILE="app.jar" --build-arg PROFILE=${BUILD_PROFILE} --no-cache .

// 推送镜像到远程仓库
docker ${LOGIN_COMMAND}
docker tag ${DOCKER_NAME} ${repo}
docker push ${repo}

// 删除临时产生的jar包
rm -rf app.jar



# Deploy
echo deploy to remote server...

// 通过ssh登录远程服务器,并执行命令:拉取镜像,构建容器
ssh ${REMOTE_SERVER} "
docker ${LOGIN_COMMAND};
docker pull ${repo};
docker rm -f $JOB_NAME || true;
docker run -d -p ${port}:${port} --name ${JOB_NAME} ${repo};"

结合docker发布后端项目(基于gradle包管理)的shell脚本

原文:https://www.cnblogs.com/tian874540961/p/11915639.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!