1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- kind: pipeline
- type: docker
- name: default
- # 触发分支
- trigger:
- branch:
- - master
- steps:
- # # 获取缓存
- # - name: restore-cache
- # image: drillster/drone-volume-cache
- # settings:
- # restore: true
- # mount:
- # - /root/.m2/repository
- # volumes:
- # - name: repository
- # path: /cache
- # 参考:
- # https://www.jianshu.com/p/4aaac6c0c105
-
- # 打包
- - name: build
- image: matderosa/maven-3.8-openjdk-17-gcc8.5
- volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
- - name: maven-cache
- path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载
- - name: maven-build
- path: /app/build # 将应用打包好的Jar和执行脚本挂载出来
- commands:
- - mvn clean package -P dev
- # - cp target/backendsys-1.0.0.jar /app/build/target/backendsys-1.0.0.jar
- # - cp Dockerfile /app/build/Dockerfile
- # - cp docker-compose.yml /app/build/docker-compose.yml
- # # 更新缓存
- # - name: rebuild-cache
- # image: drillster/drone-volume-cache
- # settings:
- # rebuild: true
- # mount:
- # - /root/.m2/repository
- # volumes:
- # - name: repository
- # path: /cache
- # 部署
- - 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:
- # Docker 启动
- - cd /home/www/project/BackendSys
- - sudo docker build -t backendsys .
- - sudo docker-compose down
- - sudo docker-compose up -d
- - sudo echo "Docker App started."
- # # 清除冗余镜像
- # - name: cleanup
- # image: docker:dind
- # volumes:
- # - name: docker-sock
- # path: /var/run/docker.sock
- # when:
- # status: [ success ]
- # commands:
- # # 删除1小时前创建的未使用镜像
- # - docker image prune -f --filter "until=1h"
- volumes: # 定义流水线挂载目录,用于共享数据
- - name: maven-build
- host:
- path: /home/www/project/BackendSys # 从宿主机中挂载的目录
- - name: maven-cache
- host:
- path: /root/docker/maven/cache
- - name: docker-sock
- host:
- path: /var/run/docker.sock
|