java自动部署基于阿里云效
一键部署
前置条件
使用阿里云效进行代码管理 https://codeup.aliyun.com/

操作方式
- 进入使用阿里云效平台的流水线页面

- 在我的流水线中新建流水线

- 点击可视化编排,在可视化编排中选择打包+构建+ 部署一整套的

- 选择流水源,在选择Codeup (阿里云效代码管理)

- 选择自己的代码仓库和相应的分支,

- java代码扫描,默认不需要修改

- Maven 单元测试,默认不需要修改

- Java 构建上传,需要修改构建物上传,打包路径和deploy.sh

- 健康检测需要添加依赖,才能进行/api/actuator/health # 应用健康检查URL
▼maven复制代码<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
- deploy.sh
▼txt复制代码# 修改APP_NAME为云效上的应用名 APP_NAME=outdoor-backend PROG_NAME=$0 ACTION=$1 APP_START_TIMEOUT=60 # 等待应用启动的时间 APP_PORT=8101 # 应用端口 HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT}/api/actuator/health # 应用健康检查URL APP_HOME=/home/admin/${APP_NAME} # 从package.tgz中解压出来的jar包放到这个目录下 JAR_NAME=${APP_HOME}/target/${APP_NAME}.jar # jar包的名字 JAVA_OUT=${APP_HOME}/logs/start.log #应用的启动日志 # 创建出相关目录 mkdir -p ${APP_HOME} mkdir -p ${APP_HOME}/logs usage() { echo "Usage: $PROG_NAME {start|stop|restart}" exit 2 } health_check() { exptime=0 echo "checking ${HEALTH_CHECK_URL}" while true do status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code} ${HEALTH_CHECK_URL}` if [ "$?" != "0" ]; then echo -n -e "\rapplication not started" else echo "code is $status_code" if [ "$status_code" == "200" ];then break fi fi sleep 1 ((exptime++)) echo -e "\rWait app to pass health check: $exptime..." if [ $exptime -gt ${APP_START_TIMEOUT} ]; then echo 'app start failed' exit 1 fi done echo "check ${HEALTH_CHECK_URL} success" } start_application() { echo "starting java process" nohup java -jar ${JAR_NAME} --spring.profiles.active=prod > ${JAVA_OUT} 2>&1 & echo "started java process" } stop_application() { checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` if [[ ! $checkjavapid ]];then echo -e "\rno java process" return fi echo "stop java process" times=60 for e in $(seq 60) do sleep 1 COSTTIME=$(($times - $e )) checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'` if [[ $checkjavapid ]];then kill -9 $checkjavapid echo -e "\r -- stopping java lasts `expr $COSTTIME` seconds." else echo -e "\rjava process has exited" break; fi done echo "" } start() { start_application health_check } stop() { stop_application } case "$ACTION" in start) start ;; stop) stop ;; restart) stop start ;; *) usage ;; esac
- 主机部署,需要选择制品、主机组

- 修改下载路径和部署脚本

- 部署脚本
▼ssh复制代码rm -rf /home/admin/outdoor-backend/* tar zxvf /home/admin/app/package.tgz -C /home/admin/outdoor-backend/ sh /home/admin/outdoor-backend/deploy.sh restart
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
作者分享
小程序上线全流程只花520💰打工人必看!
7
刚刚零撸了一个项目,户外组队小程序,暂不完善,求体验反馈,后续不断优化
7
大家好,我是张华洋,坐标贵阳,很高兴能够跟大家交流学习。 身份状态:工作中,看机会。 学习方向: 全栈开发工程师 兴趣爱好: 打游戏Apex、轮滑、羽毛球。 个人经历: 专科,机点一体化毕业,进入吉利发动机工厂维修岗位实习,后面觉得工厂工作太过枯燥,每天就是在工厂巡逻,不是我想要的生活。 离职以后进入房地产销售行业,工作一个月以后由于自己不太适合又离职了,后面通过招聘软件面试了PLC工程师,进去煤
2
day 01
1、hiit训练19分钟
2、瘦肚子5分钟
0
day 4
hiit锻炼
0
