drone + runner + gitea 持续部署

发布时间 2023-08-30 16:05:41作者: 现世中的素人

前面已经把gitea 安装完成了: https://www.cnblogs.com/G921123/p/17504595.html

 

接下来 安装  drone 和 runner 

1、 在gitea安装完成后 先创建一个应用

 

 

  # 在下方输入应用名称 和回调地址 然后点击创建应用即可

 

# 最后会得到以下信息 用户后面drone使用

 

 # 再使用 命令生成共享密钥: openssl rand -hex 16 用户 drone 和 runner的rpc通信

 

 

2、 创建 droen 的 镜像容器

docker run \
--volume=/usr/local/var/gitea/drone:/data \
--env=DRONE_GITEA_SERVER=http://abc.com \  # (必填)您的 Gitea 服务器地址

--env=DRONE_GITEA_CLIENT_ID=xxxxxxxxxx \  # (必填)您的 Gitea OAuth 客户端ID
--env=DRONE_GITEA_CLIENT_SECRET=gto_xxxxxxxxxx \  # 必填)您的 Gitea OAuth 客户端密钥
--env=DRONE_RPC_SECRET=123456 \  # (必填)前面 openssl rand -hex 16 生成的共享密钥
--env=DRONE_SERVER_HOST=http://abc.com \  # 必填)您访问 Drone 时所用的域名或 IP 地址。如果使用 IP 地址,还应该包含端口
--env=DRONE_SERVER_PROTO=http \  # 必填)设置服务器的协议,使用: http 或 https
--publish=3002:80 \  # 暴露出去的端口
--publish=3003:443 \
--detach=true \
--name=drone-server \  # 容器名称
drone/drone:2

 

 

3、创建 runner 的 镜像容器

docker run --detach \
--volume=/var/run/docker.sock:/var/run/docker.sock \
--env=DRONE_RPC_PROTO=http \  # 传输协议: http 或 https
--env=DRONE_RPC_HOST=drone-server:80 \  # 填写 Drone Server 的主机名 我这里直接使用drone的容器名称
--env=DRONE_RPC_SECRET=123456 \  # 与 Drone Server 共享的密钥
--env=DRONE_RUNNER_CAPACITY=2 \  # Runner 可以并发执行的流水线数量,默认: 2
--env=DRONE_RUNNER_NAME=my-drone-runner \
--publish=3004:3000 \
--name=drone-runner \
drone/drone-runner-docker:1

 

4、 跑起来这俩个容器并查看是否有问题,可以使用docker logs 容器名称  来查看是否正常,这里特别注意下 runner 和 drone的通信是否链接正常

  以上都没问题就可以 访问 drone了,部署drone的地址 + 暴露出来的端口 效果如下

# 第一张忘记截图了,但是点击【 如果授权回调地址配置没问题的话 】就会直接弹出这个画面

 

# 以上授权无误 展示如下

 

 

# 进去之后是空白的,点击 “sync” 进行同步,然后激活

 

 # 配置 基本上不需要动,但注意使用的yml文件

 

# 以上完成之后就可以再次回到gitea 查看这个仓库,点击设置->web钩子 会被注入一个钩子

 # 点击进去

 

 

 

# 有个东西 这里如果一开始直接点击测试推送不通过也没关系,需要你项目文件里面包含 .drone.yml 文件 并配置了相应的步骤和触发条件

触发条件要和上面的一致,有其中之一即可。

 

# 以下是一个简单的测试 分支在develop上 并且 推送上去就触发钩子

 

 

 

# 测试结果 【 这是拿的之前的截图 都基本差不多 】

 

 

 

 

# 我是放一台服务器的 最好不要这样操作