Gogs+Drone搭建教程
2021-06-25 本文已影响0人
霡霂976447044
安装Gogs
此处是二进制安装,安装过程比较简单,出现问题查看日志即可。
注意官方建议使用Gitea
安装Drone
根据drone.io的文档安装
安装Drone Server和Drone Runner
Runner会去实际执行pipline,如果没有安装运行对应的runner,那么不会执行pipline
此处使用版本2.0.2, 2在搭建的时候前端会出现了bug
docker run \
--volume=/var/lib/drone:/data \
--env=DRONE_AGENTS_ENABLED=true \
--env=DRONE_GOGS_SERVER=http://192.168.1.239:3000 \
--env=DRONE_RPC_SECRET=随机密钥字符串1 \
--env=DRONE_SERVER_HOST=192.168.1.239 \
--env=DRONE_SERVER_PROTO=http \
--env=DRONE_LOGS_TRACE=true \
--publish=80:80 \
--publish=443:443 \
--restart=always \
--detach=true \
--name=drone \
drone/drone:2.0.2
sudo docker run -d \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST=192.168.1.239 \
-e DRONE_RPC_SECRET=随机密钥字符串1 \
-p 4001:3000 \
--restart always \
--name runner-ssh \
drone/drone-runner-ssh
docker run -d \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST=192.168.1.239 \
-e DRONE_RPC_SECRET=随机密钥字符串1 \
-e DRONE_RUNNER_CAPACITY=2 \
-e DRONE_RUNNER_NAME=${HOSTNAME} \
-p 4002:3000 \
--restart always \
--name runner-docker \
drone/drone-runner-docker:1
检查webhooks是否正常
按照以下步骤完成,少一步可能出现错误
- 1 登录drone激活仓库
- 2 在仓库创建
.drone.yml
文件 - 3 检查仓库的webhooks配置是否正常
在gogs里面检查webhooks 正常,此处的地址会使用DRONE_SERVER_HOST
如果出现错误,尝试修改地址为 drone服务的端口地址
image.png当不存在.drone.yml文件或者仓库没有在drone激活,测试返回的报文可能是dial tcp连接失败。
重新部署
重新部署只需要停止删除容器 再开启
docker stop drone
docker start drone
如果需要删除记录:
sudo rm /var/lib/drone/database.sqlite
pipline demo
ssh部署Demo 以下格式可能是错误的
ymal的语法可以网上找到说明
https://nodeca.github.io/js-yaml/可以检查yml语法是否正常
---
kind: pipeline
type: ssh
name: default
server:
host: 192.168.1.239
user: 用户名
password:
from_secret: 密钥名
steps:
- name: greeting
commands:
- echo hello world
docker demo
kind: pipeline
type: docker
name: default
steps:
- name: greeting
image: alpine
commands:
- echo hello
- echo world
根据tag执行pipline
---
kind: pipeline
type: ssh
name: default
server:
host: 192.168.1.239
user: 用户名
password:
from_secret: 密钥名
steps:
- name: greeting
commands:
- echo hello world
when:
event:
- tag