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