.drone.yml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. kind: pipeline
  2. type: docker
  3. name: default
  4. trigger:
  5. branch:
  6. - master
  7. - develop
  8. steps:
  9. # 构建 jar
  10. - name: maven-build
  11. image: maven:3.8-openjdk-17
  12. volumes:
  13. - name: maven-cache
  14. path: /root/.m2
  15. - name: build-output
  16. path: /app/build
  17. commands:
  18. - mvn clean package -P prod
  19. - mkdir -p /app/build/target
  20. - cp target/test.jar /app/build/target/test.jar
  21. - cp Dockerfile /app/build/Dockerfile
  22. - cp docker-compose.yml /app/build/docker-compose.yml
  23. # 上传到服务器
  24. - name: scp-upload
  25. image: appleboy/drone-scp
  26. settings:
  27. host:
  28. from_secret: ssh_host
  29. username:
  30. from_secret: ssh_user
  31. password:
  32. from_secret: ssh_pwd
  33. port: 22
  34. source:
  35. - /app/build/target/test.jar
  36. - /app/build/Dockerfile
  37. - /app/build/docker-compose.yml
  38. target: /home/app/
  39. # 部署容器
  40. - name: deploy
  41. image: appleboy/drone-ssh
  42. settings:
  43. host:
  44. from_secret: ssh_host
  45. username:
  46. from_secret: ssh_user
  47. password:
  48. from_secret: ssh_pwd
  49. port: 22
  50. command_timeout: 5m
  51. script:
  52. - cd /home/app
  53. - sudo docker-compose down || true
  54. - sudo docker-compose build --no-cache
  55. - sudo docker-compose up -d
  56. - sudo docker image prune -f
  57. - echo "🚀 App 已部署完成"
  58. volumes:
  59. - name: maven-cache
  60. host:
  61. path: /root/docker/maven/cache
  62. - name: build-output
  63. host:
  64. path: /home/app