本地部署轻量级持续集成工具 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 界面了,登录即可进行操作。

相关推荐
Ruiery2 分钟前
Linux 6.6内核 PCIe 深度解析(十):PCIe Port Driver(portdrv)— 一个物理 Port,拆出五个逻辑服务
linux·运维·服务器
天天喝旺仔1 小时前
Python asyncio 异步编程实战:用协程与事件循环构建高性能网络服务
服务器·网络·python·性能优化·fastapi
运维行者_1 小时前
ISP 企业级带宽计费怎么做?网络流量计费的 6 大核心能力
运维·服务器·网络·数据库·支持向量机·接口隔离原则
数安旭说1 小时前
企业终端行为审计建设:本地审计 + 网络审计构建完整溯源取证体系
运维·数据安全·软件需求·溯源·审计·网络审计
Elastic 中国社区官方博客2 小时前
在 Elasticsearch 中回填时间序列数据:通过批量 API 加载数月的历史指标数据
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
Horn Still Sounds2 小时前
Linux网络并发服务器模型与SQLite数据库学习笔记
linux·服务器·数据库
10mAh2 小时前
【Linux】CPU 100% 怎么排查?——top、pidstat、jstack 到线程定位实战
linux·运维·服务器
!chen3 小时前
客户环境 Nginx 配置流式报表与超时排查
运维·nginx
2601_966799043 小时前
酷嗨米J300:硬件级多通道分发采集设备,为矩阵直播打造独立信号通道
服务器·网络·负载均衡
落樱弥城3 小时前
RHI 设计考量:不同 API 差异分析
服务器·前端·性能优化