diff --git a/.drone.yml b/.drone.yml index 71922e9..83f84e8 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,47 +3,57 @@ type: docker name: venue_reservation_service steps: - # 1. Maven打包阶段 - - name: build java package + # 1.maven打包 + - name: maven compile pull: if-not-exists - image: maven:3.8.7-openjdk-17-slim + # 构建镜像的maven+jdk选择,最好选择满足匹配你的项目版本的 + image: matderosa/maven-3.8-openjdk-17-gcc8.5 volumes: + # maven构建缓存 - name: maven-cache path: /root/.m2 - - name: build-output - path: /build-output + # 挂载宿主机的目录 + - name: maven-build + path: /venue/build commands: + # 开始打包maven工程 - mvn clean package -Dmaven.test.skip=true - - cp target/*.jar /build-output/app.jar - - cp Dockerfile /build-output - - cp docker.sh /build-output - environment: - DRONE_REPO_NAME: venue_reservation_service # 确保这个变量设置正确 + # 将打包后的文件复制到宿主机映射目录 + - cp target/*.jar /venue/build + - cp Dockerfile /venue/build + - cp docker.sh /venue/build - # 2. Docker构建和部署阶段 - - name: build and deploy docker - image: docker:20.10-dind + - name: build docker + image: plugins/docker volumes: - - name: build-output - path: /build-output - - name: docker-sock - path: /var/run/docker.sock + # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置 + - name: maven-build + path: /venue/build # 将应用打包好的Jar和执行脚本挂载出来 + - name: docker + path: /var/run/docker.sock # 挂载宿主机的docker + settings: + dockerfile: /venue/build/Dockerfile commands: - - cd /build-output + # 定义在Docker容器中执行的shell命令 + - cd /venue/build - chmod +x docker.sh - - ./docker.sh + - sh docker.sh + - docker ps -volumes: - - name: build-output + +volumes: # 定义流水线挂载目录,用于共享数据 + - name: maven-build host: - path: /home/projects/venue/build + path: /home/projects/venue/maven/build # 从宿主机中挂载的目录 - name: maven-cache host: path: /home/projects/venue/maven/cache - - name: docker-sock + - name: docker host: path: /var/run/docker.sock + +# drone执行触发器 trigger: branch: - - master \ No newline at end of file + - master