.drone.yml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. # - cp target/backendsys-1.0.0.jar /app/build/target/backendsys-1.0.0.jar
  32. # - cp Dockerfile /app/build/Dockerfile
  33. # - cp docker-compose.yml /app/build/docker-compose.yml
  34. # # 更新缓存
  35. # - name: rebuild-cache
  36. # image: drillster/drone-volume-cache
  37. # settings:
  38. # rebuild: true
  39. # mount:
  40. # - /root/.m2/repository
  41. # volumes:
  42. # - name: repository
  43. # path: /cache
  44. # 部署
  45. - name: deploy-ssh
  46. image: appleboy/drone-ssh
  47. settings:
  48. port: 22
  49. host:
  50. from_secret: ssh_host
  51. username:
  52. from_secret: ssh_username
  53. password:
  54. from_secret: ssh_password
  55. command_timeout: 1m
  56. script:
  57. # Docker 启动
  58. - cd /home/www/project/BackendSys
  59. - sudo docker build -t backendsys .
  60. - sudo docker-compose down
  61. - sudo docker-compose up -d
  62. - sudo echo "Docker App started."
  63. # # 清除冗余镜像
  64. # - name: cleanup
  65. # image: docker:dind
  66. # volumes:
  67. # - name: docker-sock
  68. # path: /var/run/docker.sock
  69. # when:
  70. # status: [ success ]
  71. # commands:
  72. # # 删除1小时前创建的未使用镜像
  73. # - docker image prune -f --filter "until=1h"
  74. volumes: # 定义流水线挂载目录,用于共享数据
  75. - name: maven-build
  76. host:
  77. path: /home/www/project/BackendSys # 从宿主机中挂载的目录
  78. - name: maven-cache
  79. host:
  80. path: /root/docker/maven/cache
  81. - name: docker-sock
  82. host:
  83. path: /var/run/docker.sock