|
@@ -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
|