Browse Source

部署测试服

tsurumure 3 months ago
parent
commit
d9a1ce1448
6 changed files with 69 additions and 21 deletions
  1. 54 5
      .drone.yml
  2. 2 3
      Dockerfile
  3. 4 8
      docker-compose.yml
  4. 5 1
      pom.xml
  5. 3 3
      src/main/resources/application-dev.yml
  6. 1 1
      src/main/resources/application-prod.yml

+ 54 - 5
.drone.yml

@@ -6,6 +6,7 @@ name: default
 trigger:
   branch:
     - master
+    - develop
 
 steps:
 
@@ -20,7 +21,7 @@ steps:
      - name: repository
        path: /cache
 
-  # 打包
+  # 打包 (prod)
   - name: build
     image: matderosa/maven-3.8-openjdk-17-gcc8.5
     volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
@@ -42,6 +43,29 @@ steps:
       branch:
         master
 
+  # 打包 (develop)
+  # - 在同个服务器时,docker-compose.yml 需要修改服务名
+  - name: build
+    image: matderosa/maven-3.8-openjdk-17-gcc8.5
+    volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
+      - name: maven-cache
+        path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载
+      # (/app/build/ 对应的是 /home/BackendSys/ 目录)
+      - name: maven-build-dev
+        path: /app/build # 将应用打包好的Jar和执行脚本挂载出来
+    commands:
+      - mvn clean package -P dev
+      # (此时拷贝的内容是仓库分支拉下来的代码)
+      - mkdir -p /app/build/target
+      # 将打包好的 Jar包 拷贝到指定目录
+      - cp target/backendsys-dev.jar /app/build/target/backendsys-dev.jar
+      # 将配置文件从最新的分支 拷贝到目标目录
+      - cp Dockerfile /app/build/Dockerfile
+      - cp docker-compose.yml /app/build/docker-compose.yml
+    when:
+      branch:
+        develop
+
   # # 更新缓存
   # - name: rebuild-cache
   #   image: drillster/drone-volume-cache
@@ -53,7 +77,7 @@ steps:
   #     - name: repository
   #       path: /cache
 
-  # 部署
+  # 部署 (prod)
   - name: deploy-ssh
     image: appleboy/drone-ssh
     settings:
@@ -68,7 +92,7 @@ steps:
       script:
         # (此时是在 SSH登录服务器 的作用域)
         # Docker 启动
-        - cd /home/www/project/BackendSys
+        - cd /home/BackendSys
         # 根据 Dockerfile 配置创建镜像 (名称需要小写)
         - sudo docker build -t backendsys .
         # 停止容器
@@ -79,6 +103,29 @@ steps:
     when:
       branch: master
 
+  # 部署 (develop)
+  - name: deploy-ssh
+    image: appleboy/drone-ssh
+    settings:
+      port: 22
+      host:
+        from_secret: ssh_host
+      username:
+        from_secret: ssh_username
+      password:
+        from_secret: ssh_password
+      command_timeout: 1m
+      script:
+        - cd /home/BackendSysDev
+        - sudo docker build -t backendsys-dev .
+        - sudo docker-compose down
+        - sudo docker-compose up -d
+        - sudo echo "Docker App started."
+    when:
+      branch: develop
+
+
+
   # 清除冗余镜像
   - name: cleanup
     image: docker:dind
@@ -92,11 +139,13 @@ steps:
       - docker image prune -f --filter "until=1h"
 
 
-
 volumes: # 定义流水线挂载目录,用于共享数据
   - name: maven-build
     host:
-      path: /home/www/project/BackendSys # 从宿主机中挂载的目录
+      path: /home/BackendSys # 从宿主机中挂载的目录
+  - name: maven-build-dev
+    host:
+      path: /home/BackendSysDev # 从宿主机中挂载的目录
   - name: maven-cache
     host:
       path: /root/docker/maven/cache

+ 2 - 3
Dockerfile

@@ -1,5 +1,4 @@
-FROM openjdk:19-oracle
+FROM openjdk:17-oracle
 
-RUN mkdir -p /app/build
-RUN chmod +x /app/build
+RUN mkdir -p /app/build && chmod +x /app/build
 ADD ./target/backendsys.jar /app/build/backendsys.jar

+ 4 - 8
docker-compose.yml

@@ -9,12 +9,9 @@ services:
     # 必须是小写
     image: backendsys
     volumes:
-      #      # 挂载日志 -v A:B ,A指宿主机位置,B指容器位置
-      - /home/www/project/BackendSys/libs/:/app/build/libs/
-      # 上传文件的路径(因为项目中设置的就是这个上传路径,所以要根据项目作调整)
-      - /home/www/project/BackendSys/uploads/:/home/www/project/BackendSys/uploads/
-      - /home/www/project/BackendSys/logs/:/logs/
-      # 指定容器时间为宿主机时间
+      - /home/BackendSys/libs/:/app/build/libs/
+      - /home/BackendSys/uploads/:/home/BackendSys/uploads/
+      - /home/BackendSys/logs/:/logs/
       - /etc/localtime:/etc/localtime
 
 #    ports:
@@ -28,5 +25,4 @@ services:
 
     # -Xms4g -Xmx12g (服务器 8核 16GB)
     # -Xms1g -Xmx4g (服务器 4核 8GB)
-    entrypoint: nohup java -Xms1g -Xmx4g -Dloader.path=/app/build/libs -jar /app/build/backendsys.jar
-    # -Dloader.path=/app/build/libs
+    entrypoint: nohup java -Dloader.path=/app/build/libs -jar /app/build/backendsys.jar

+ 5 - 1
pom.xml

@@ -408,6 +408,7 @@
             <id>local</id>
             <properties>
                 <profile.active>local</profile.active>
+                <finalName>${project.artifactId}-local</finalName>
             </properties>
             <activation>
                 <activeByDefault>true</activeByDefault>
@@ -417,19 +418,22 @@
             <id>prod</id>
             <properties>
                 <profile.active>prod</profile.active>
+                <finalName>${project.artifactId}</finalName>
             </properties>
         </profile>
         <profile>
             <id>dev</id>
             <properties>
                 <profile.active>dev</profile.active>
+                <finalName>${project.artifactId}-dev</finalName>
             </properties>
         </profile>
     </profiles>
 
 
     <build>
-        <finalName>${project.artifactId}</finalName>
+<!--        <finalName>${project.artifactId}</finalName>-->
+        <finalName>${finalName}</finalName>
         <resources>
             <!-- 扫描src/main/java下所有xx.xml文件 -->
             <resource>

+ 3 - 3
src/main/resources/application-dev.yml

@@ -22,11 +22,11 @@ log-stream:
   enable: false
   sign: 97e3ef8e-a8b9-46f3-b63a-f0504154efb7
   charset: UTF-8
-  exec: 'tail -f /logs/backendsys.log'
+  exec: 'tail -f /logs/backendsys-dev.log'
 
 spring:
   application:
-    name: backendsys
+    name: backendsys-dev
   config:
     name: application-dev
   datasource:
@@ -70,7 +70,7 @@ file:
   upload:
 
     # (Ubuntu)
-    directory: /home/www/project/BackendSys/uploads/
+    directory: /home/BackendSysDev/uploads/
     # (Windows)
     # directory: D://CodeJava//QuickLaunchSpring//BackendSys//uploads//
     # (MacOS)

+ 1 - 1
src/main/resources/application-prod.yml

@@ -70,7 +70,7 @@ file:
   upload:
 
     # (Ubuntu)
-    directory: /home/www/project/BackendSys/uploads/
+    directory: /home/BackendSys/uploads/
     # (Windows)
     # directory: D://CodeJava//QuickLaunchSpring//BackendSys//uploads//
     # (MacOS)