本地部署轻量级持续集成工具 Drone CI 并实现外部访问

Drone 是一款基于容器技术的持续集成(CI)和持续交付(CD)平台,它使开发者从代码提交到测试再到部署等软件开发流程中的各个阶段实现自动化。本文将详细介绍如何利用 Docker 在本地部署 Drone CI 并结合路由侠实现外网访问本地部署的 Drone CI 。

第一步,本地部署安装 Drone CI

1,安装 Docker 和 Docker Compose

本教程操作环境为 Linux Ubuntu 系统,我们需要先确保你的系统上已经安装了 Docker 和 Docker Compose 。如果尚未安装,可以参考官方文档进行安装:

2,在你的 Git 服务提供商处创建 OAuth 应用,本教程以 GitHub 为例。进入 GitHub 官网:https://github.com/。

登录之后进入【 Settings 】→【 Developer settings 】→【 OAuth Apps 】。

点击【 New OAuth App 】,填写信息:Application name:Drone CI (本地) 、 Homepage URL:http://localhost:8081 、 Authorization callback URL:http://localhost:8081/login ,点击【 Register application 】。

记下 Client ID 和 Client Secret(后面会用到)。

3,在终端输入以下内容创建并进入一个新目录 drone-CI-docker 。

复制代码
mkdir drone-CI-docker && cd drone-CI-docker

使用 vim docker-compose.yml 命令创建 docker-compose.yml 文件并输入以下内容进行保存:

复制代码
version: '3'


services:
  drone-server:
    image: drone/drone:latest
    ports:
      - "8081:80"
    volumes:
      - ./drone-data:/data
    environment:
      - DRONE_GITEA_SERVER=https://github.com
      - DRONE_GITEA_CLIENT_ID=${DRONE_CLIENT_ID}
      - DRONE_GITEA_CLIENT_SECRET=${DRONE_CLIENT_SECRET}
      - DRONE_RPC_SECRET=${DRONE_RPC_SECRET}
      - DRONE_SERVER_HOST=localhost:8081
      - DRONE_SERVER_PROTO=http
      - DRONE_USER_CREATE=username=your-github-username,admin=true
    restart: always

  drone-agent:
    image: drone/agent:latest
    depends_on:
      - drone-server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:    
      - DRONE_RPC_SERVER=http://drone-server:8081
      - DRONE_RPC_SECRET=${DRONE_RPC_SECRET}
    restart: always

4,在同一目录下使用 vim .env 命令创建 .env 文件,输入以下内容,修改成上面记下的 Client ID 和 Client Secret :

复制代码
DRONE_CLIENT_ID=你的GitHub客户端ID
DRONE_CLIENT_SECRET=你的GitHub客户端密钥
DRONE_RPC_SECRET=$(openssl rand -hex 16)

运行以下命令生成 RPC 密钥:

复制代码
echo "DRONE_RPC_SECRET=$(openssl rand -hex 16)" >> .env

5,运行以下命令启动 Drone :

复制代码
docker-compose up -d

6,打开浏览器访问地址:http:// 本地服务器 IP :8081 ,来到 Drone CI Server 的欢迎页面。

点击【 CONTINUE 】按钮,你应该会被重定向到 GitHub 进行授权。登录后点击右上角的【 + 】按钮,选择你想要启动 CI 的仓库点击【 ACTIVATE 】进行激活,然后在你的项目根目录下创建 .drone.yml 文件即可进行后续操作。

第二步,外网访问本地 Drone CI

在内网的电脑上安装路由侠,点此下载

1,下载安装完成后,打开路由侠界面,点击【内网映射】。

2,点击【添加映射】。

3,选择【原生端口】。

4,在内网主机填写你的服务器 IP 并且在内网端口里填写端口 8081 后点击【创建】按钮,如下图。

5,创建好后,就可以看到一条映射的公网地址,鼠标右键点击【复制地址】。

6,在外网电脑上,打开浏览器,在地址栏输入从路由侠生成的外网地址,就可以看到内网部署的 Drone CI 界面了,登录即可进行操作。

相关推荐
志栋智能7 小时前
运维超自动化的版本控制与回滚机制
运维·自动化
中云DDoS CC防护蔡蔡8 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Ruiery8 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
ClickHouseDB8 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
欧米欧8 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery8 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
todoitbo9 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
时间售卖铺9 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
前端精髓9 小时前
调用大模型API
运维·服务器·microsoft
跨境小彭10 小时前
Temu 全托管模式下,SKU 利润核算的实践复盘
大数据·运维·人工智能·自动化·temu