kind: pipeline type: docker name: www trigger: event: [push] branch: [master] # 使用工作区共享数据 # - 流水线中的临时数据, 等同 ${DRONE_WORKSPACE} => /drone/nuxt-app, 流水线结束后自动销毁 # - 需要显示使用 volumes 配置将其中的临时数据挂在到宿主机, 才能够持久化 workspace: base: /drone path: www steps: # 打包准备阶段 - name: prepare-artifacts image: alpine:3.22.2 volumes: - name: artifacts_mapping path: /artifacts - name: timezone_mapping path: /etc/localtime:ro commands: - cd $DRONE_WORKSPACE - echo ">>> artifacts目录内容:" - ls -la /artifacts/ - | # 跟环境变量相关的可能最好不覆盖 cp -n compose.yaml /artifacts/ echo ">>> 最终artifacts目录内容:" ls -la /artifacts/ # Docker 构建部署阶段 - name: deploy image: docker:27.5.1-alpine3.21 depends_on: [prepare-artifacts] environment: # 当前构建的容器使用的环境变量(对于其打包的不起作用奥) HTTP_PROXY: http://127.0.0.1:7897 HTTPS_PROXY: http://127.0.0.1:7897 NO_PROXY: localhost,127.0.0.1 volumes: - name: docker_sock_mapping path: /var/run/docker.sock - name: timezone_mapping path: /etc/localtime:ro commands: - pwd - ls -al . - docker compose build # 卷配置 volumes: - name: artifacts_mapping host: path: /root/apps/www - name: docker_sock_mapping host: path: /var/run/docker.sock - name: timezone_mapping host: path: /etc/localtime