Files
www/.drone.yml
zhuhjay 22e48d9558 build(www): 添加 Drone CI 流水线配置
- 新增 .drone.yml 文件用于定义 CI/CD 流程
- 配置了基于 Docker 的部署步骤
- 设置了工作区和卷映射以支持持久化数据
- 添加了构建准备阶段和 Docker 部署阶段
- 定义了环境变量和代理设置
- 配置了 artifacts 目录的处理逻辑
- 添加了 timezone 映射以确保时间同步
- 设置了 docker.sock 映射以支持 Docker in Docker
2025-11-01 13:36:00 +08:00

63 lines
1.6 KiB
YAML

kind: pipeline
type: docker
name: www
trigger:
event: [push]
branch: [main]
# 使用工作区共享数据
# - 流水线中的临时数据, 等同 ${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