Browse Source

chore: 新增测试环境自动打包

hanfangyu 1 năm trước cách đây
mục cha
commit
9ed614557b
2 tập tin đã thay đổi với 92 bổ sung0 xóa
  1. 44 0
      .dev.drone.yml
  2. 48 0
      run_dev.sh

+ 44 - 0
.dev.drone.yml

@@ -0,0 +1,44 @@
+kind: pipeline # 定义对象类型,还有secret和signature两种类型
+type: docker # 定义流水线类型,还有kubernetes、exec、ssh等类型
+name: ezhizao_yzbh_financial_api # 定义流水线名称
+
+steps: # 定义流水线执行步骤,这些步骤将顺序执行
+  - name: package # 流水线名称
+    image: maven:3-jdk-8 # 定义创建容器的Docker镜像
+    volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
+      - name: maven-cache
+        path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载
+      - name: maven-build
+        path: /home/build # 将应用打包好的Jar和执行脚本挂载出来
+    commands: # 定义在Docker容器中执行的shell命令
+      - mvn clean package # 应用打包命令
+      - mkdir -p /home/build/ezhizao_yzbh_financial/jar/
+      - cp target/ezhizao_yzbh_financial.jar /home/build/ezhizao_yzbh_financial/jar/ezhizao_yzbh_financial.jar
+      - cp Dockerfile /home/build/ezhizao_yzbh_financial/Dockerfile
+      - cp run_dev.sh /home/build/ezhizao_yzbh_financial/run.sh
+
+  - name: build-start
+    image: appleboy/drone-ssh:1.7.7 # SSH工具镜像
+    settings:
+      host: 82.156.209.15 # 远程连接地址
+      username:
+        from_secret: ssh_user # 远程连接账号
+      password:
+        from_secret: ssh_password # 从Secret中读取SSH密码
+      port: 22 # 远程连接端口
+      command_timeout: 5m # 远程执行命令超时时间
+      script:
+        - cd /home/build/ezhizao_yzbh_financial # 进入宿主机构建目录
+        - chmod +x run.sh # 更改为可执行脚本
+        - ./run.sh # 运行脚本打包应用镜像并运行
+volumes: # 定义流水线挂载目录,用于共享数据
+  - name: maven-build
+    host:
+      path: /home/build  # 从宿主机中挂载的目录
+  - name: maven-cache
+    host:
+      path: /home/cache
+
+trigger:
+  branch:
+    - develop

+ 48 - 0
run_dev.sh

@@ -0,0 +1,48 @@
+#!/usr/bin/env bash
+# 定义应用组名
+group_name='ezhizao'
+
+# 定义应用名称
+app_name='ezhizao_yzbh_financial_api'
+# 定义挂载目录名称
+volume_name='ezhizao_yzbh_financial'
+# 定义应用版本
+app_version='1.0-SNAPSHOT'
+# 定义后端端口
+app_port=8044
+# 定义应用环境
+profile_active='dev'
+
+# 删除镜像
+# docker rmi ${group_name}/${app_name}:${app_version}
+# echo '----rm image----'
+
+# 打包编译docker镜像
+docker build -t ${group_name}/${app_name}:${app_version} .
+
+if [ $? -eq 0 ]; then
+    echo '----build image success----'
+else
+    echo '----build image fail----'
+    exit 1
+fi
+
+# 停止容器
+docker stop ${app_name}
+echo '----stop container----'
+
+# 删除容器
+docker rm ${app_name}
+echo '----rm container----'
+
+# 启动容器
+docker run -p ${app_port}:${app_port} --name ${app_name} --network yzbh_network \
+-e 'spring.profiles.active'=${profile_active} \
+-e TZ="Asia/Shanghai" \
+-v /home/build/${volume_name}/logs:/home/ruoyi/logs \
+-v /home/files:/home/files \
+-d ${group_name}/${app_name}:${app_version}
+echo '----start container----'
+
+docker system prune -f
+echo '----clear docker----'