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

相关推荐
Yeats_Liao3 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
爱吃生蚝的于勒3 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森3 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
文艺理科生Owen4 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
运维·nginx
期待のcode4 小时前
Redis的主从复制与集群
运维·服务器·redis
翼龙云_cloud4 小时前
腾讯云代理商: Linux 云服务器搭建 FTP 服务指南
linux·服务器·腾讯云
REDcker4 小时前
gRPC开发者快速入门
服务器·c++·后端·grpc
江湖有缘5 小时前
零基础入门:使用 Docker 快速部署 Organizr 个人主页
java·服务器·docker
wangjialelele5 小时前
Linux下的IO操作以及ext系列文件系统
linux·运维·服务器·c语言·c++·个人开发
HypoxiaDream5 小时前
LINUX-Ext系列⽂件系统
linux·运维·服务器