.drone.yml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. kind: pipeline
  2. type: docker
  3. name: default
  4. # 触发分支
  5. trigger:
  6. branch:
  7. - master
  8. steps:
  9. # # 获取缓存
  10. # - name: restore-cache
  11. # image: drillster/drone-volume-cache
  12. # settings:
  13. # restore: true
  14. # mount:
  15. # - /root/.m2/repository
  16. # volumes:
  17. # - name: repository
  18. # path: /cache
  19. # 参考:
  20. # https://www.jianshu.com/p/4aaac6c0c105
  21. # 打包
  22. - name: build
  23. image: matderosa/maven-3.8-openjdk-17-gcc8.5
  24. volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
  25. - name: maven-cache
  26. path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载
  27. - name: maven-build
  28. path: /app/build # 将应用打包好的Jar和执行脚本挂载出来
  29. commands:
  30. - mvn clean package -P dev
  31. # 将打包好的 Jar包 拷贝到指定目录,而 /app/build/ 对应的是 /home/www/project/BackendSys/ 目录
  32. - cp target/backendsys-1.0.0.jar /app/build/target/backendsys-1.0.0.jar
  33. - cp Dockerfile /app/build/Dockerfile
  34. - cp docker-compose.yml /app/build/docker-compose.yml
  35. # # 更新缓存
  36. # - name: rebuild-cache
  37. # image: drillster/drone-volume-cache
  38. # settings:
  39. # rebuild: true
  40. # mount:
  41. # - /root/.m2/repository
  42. # volumes:
  43. # - name: repository
  44. # path: /cache
  45. # 部署
  46. - name: deploy-ssh
  47. image: appleboy/drone-ssh
  48. settings:
  49. port: 22
  50. host:
  51. from_secret: ssh_host
  52. username:
  53. from_secret: ssh_username
  54. password:
  55. from_secret: ssh_password
  56. command_timeout: 1m
  57. script:
  58. # Docker 启动
  59. - cd /home/www/project/BackendSys
  60. - sudo docker build -t backendsys .
  61. - sudo docker-compose down
  62. - sudo docker-compose up -d
  63. - sudo echo "Docker App started."
  64. # # 清除冗余镜像
  65. # - name: cleanup
  66. # image: docker:dind
  67. # volumes:
  68. # - name: docker-sock
  69. # path: /var/run/docker.sock
  70. # when:
  71. # status: [ success ]
  72. # commands:
  73. # # 删除1小时前创建的未使用镜像
  74. # - docker image prune -f --filter "until=1h"
  75. volumes: # 定义流水线挂载目录,用于共享数据
  76. - name: maven-build
  77. host:
  78. path: /home/www/project/BackendSys # 从宿主机中挂载的目录
  79. - name: maven-cache
  80. host:
  81. path: /root/docker/maven/cache
  82. - name: docker-sock
  83. host:
  84. path: /var/run/docker.sock