Gitea + Drone CI 实现 DevOps 自动化部署 CI/CD
Gitea 作为代码仓库,Drone CI 作为持续集成工具,实现轻量级的 DevOps 自动化部署 CI/CD。
使用了 docker runner 来执行构建任务,通过自己编写 .drone.yml,可以在不同的容器镜像中执行命令。
顺带一提,本人的博客也是使用这套工具实现自动化部署的,具体可以参考这个项目 naomi233.github.io
服务使用 docker compose 来管理
Gitea
▼yml复制代码# docker-compose.yml services: gitea: image: gitea/gitea:1-linux-amd64 container_name: gitea ports: - 3000:3000 environment: - TZ=Asia/Shanghai - USER_UID=1000 - USER_GID=1000 restart: always volumes: - ./data:/data
设置 Gitea 的 OAuth 应用,Gitea 的 OAuth 应用可以在 Gitea 的 Settings -> Applications 中找到。
填入 OAuth 应用名,重定向地址填写访问 Drone 的地址。
Drone CI
填入刚刚 Gitea 中注册的 OAuth 应用的 Client ID 和 Client Secret 到 .env 文件中。
▼env复制代码# .env # Drone CI 通信 Gitea OAuth 应用配置 GITEA_CLIENT_ID= GITEA_CLIENT_SECRET=
▼yml复制代码# docker-compose.yml services: drone-server: image: drone/drone:2 container_name: drone-server restart: always ports: - 80:80 volumes: - ./data:/data environment: - DRONE_GITEA_SERVER=http://gitea - DRONE_GITEA_CLIENT_ID=${GITEA_CLIENT_ID} - DRONE_GITEA_CLIENT_SECRET=${GITEA_CLIENT_SECRET} - DRONE_RPC_SECRET=super-rpc-secret - DRONE_USER_CREATE=admin:true - DRONE_SERVER_PROTO=http drone-runner: image: drone/drone-runner-docker:1 container_name: drone-runner restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_RPC_PROTO=http - DRONE_RPC_HOST=drone-server - DRONE_RPC_SECRET=super-rpc-secret - DRONE_RUNNER_CAPACITY=2 - DRONE_RUNNER_NAME=my-docker-runner
示例配置
下面是一个示例的 .drone.yml 配置文件,使用 pnpm 构建 Vue.js 项目并部署到服务器 /home/wwwroot/dist 路径上。
▼yml复制代码# .drone.yml kind: pipeline type: docker name: Docs deploy trigger: branch: - master volumes: - name: deploy host: path: /home/wwwroot/dist steps: - name: Build & Deploy image: gplane/pnpm:9-node20 environment: NODE_OPTIONS: --max_old_space_size=2048 volumes: - name: deploy path: /drone/src/dist commands: - pnpm config set registry https://mirrors.tencent.com/npm/ - pnpm config list - pnpm install --frozen-lockfile - pnpm run build
参考
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
