一、前期准备
1、ubuntu环境
- 确定是否具有 ssh: service ssh start,如果没有,使用:apt install openssh-server 进行安装
- 查看 Linux 的 IP 地址: ifconfig,命令不可用时,通过:apt install net-tools安装命令
- 可选:设置 root 的密码: sudo passwd root
- 可选:开启 root 的 ssh 登录: vim /etc/ssh/sshd_config,将 PermitRootLogin 设置成 true
2. 安装 docker
- 使用脚本自动安装的方式:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 启动 Docker:service docker start
- 注意点:
如果不是 root 用户,可以选择为其添加 sudo 权限
启动后可以通过 docker --version 和 docker images 查看是否正确安装
3. 安装 docker-compose
- 使用脚本自定安装的方式:curl -L https://get.daocloud.io/docker/compose/releases/download/v2.13.0/docker-compose-uname -s-uname -m> /usr/local/bin/docker-compose
- 为其添加权限:chmod +x /usr/local/bin/docker-compose
- 查看是否安装完成:docker-compose --version
4. 创建 gitee 自定义应用
- 过程按照这个来:https://docs.drone.io/server/provider/gitee/
- 创建完成后,将 Client ID 和 Client Secret 保存下来备用
- 使用 openssl rand -hex 16 创建一个 RPC SECRET 保存下来备用
二、gitee打通drone
drone集成gitee的docker-compose如下
# 创建一个文件
vim docker-compose.yml
version: '3'
services:
drone-server:
restart: always ## 容器自动重启
image: drone/drone:latest
container_name: drone
ports:
- '5000:80' ## 映射到宿主机的端口
- '5001:443'
volumes:
- /var/lib/drone:/data
environment:
- DRONE_GITEE_CLIENT_ID=92c4ea961b...cb ## gitee中生成的CLIENT ID
- DRONE_GITEE_CLIENT_SECRET=42da1b38...4bc8 ## gitee中生成的SECRET
- DRONE_SERVER_HOST=127.0.0.1:5000 ## 端口需要和映射至宿主机的一致
- DRONE_SERVER_PROTO=http
- DRONE_RPC_SECRET=d049b64c9...f980108d42 ## openssl rand -hex 16 自动生成
- DRONE_USER_CREATE=username:【查看如下:1,如何找到】,admin:true ## gitee中的用户名
- DRONE_LOGS_TEXT=true
- DRONE_LOGS_PRETTY=true
- DRONE_LOGS_COLOR=true
drone-runner:
restart: always ## 容器自动重启
image: drone/drone-runner-docker:latest
container_name: drone-runner
# ports:
# - '3000:3000' ## 映射到宿主机的端口,用于提供web页面,显示任务执行情况,可不映射
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DRONE_RPC_PROTO=http
- DRONE_RPC_HOST=127.0.0.1:5000
- DRONE_RPC_SECRET=d049b64c9...f980108d42 ## 与server服务中保持一致
- DRONE_RUNNER_NAME=docker-worker
- DRONE_RUNNER_CAPACITY=2
1、DRONE_USER_CREATE
找到username
在gitee中如何拿到username?
在gitee中->设置->个人资料->个人空间地址->用户名
2、第三方应用获取 clientID和secret
找到【第三方应用】的位置
如下图:
这里点击进去找到
Client ID
Client Secret
3、DRONE_RPC_SECRET
4、Gitee OAuth 授权错误