基于 Docker 安装 Gitea 和 Drone / Drone-Runner

安装 docker 并拉取相关镜像

  • gitea/gitea

  • drone/drone

  • drone/drone-runner-docker

1
2
3
docker pull gitea/gitea
docker pull drone/drone
docker pull drone/drone-runner-docker

安装 gitea

1
2
3
4
5
6
7
8
docker run -d \
--name gitea \
--restart always \
-p 53022:22 \
-p 53080:3000 \
-m 400m \
-v /opt/docker/gitea/data:/data \
gitea/gitea:1.11.5

按照步骤完成安装 Gitea 后,打开 https://git.52xckl.cn/user/settings/applications 页面。

应用名称:drone,重定向 URL:https://drone.52xckl.cn/login 填写完成后点击创建应用获取 客户端 ID客户端密钥

创建 drone 与 drone-runner

  • ${CLIENT_ID} -> 客户端 ID
  • ${CLIENT_SECRET} -> 客户端密钥
  • ${RPC_SECRET} -> drone 与 drone-runner 通讯的密钥,随机生成即可
1
2
3
4
5
6
7
8
9
10
11
12
13
docker run -d \
--name drone \
--restart always \
-m 200m \
-p 54080:80 \
-e DRONE_GITEA_SERVER=https://git.52xckl.cn \
-e DRONE_GITEA_CLIENT_ID=${CLIENT_ID} \
-e DRONE_GITEA_CLIENT_SECRET=${CLIENT_SECRET}= \
-e DRONE_RPC_SECRET=${RPC_SECRET} \
-e DRONE_SERVER_HOST=drone.52xckl.cn \
-e DRONE_SERVER_PROTO=https \
-v /opt/docker/drone/data:/var/lib/drone \
drone/drone:1.7.0
1
2
3
4
5
6
7
8
9
10
11
docker run -d \
--name drone-runner \
--link drone:drone \
--restart always \
-m 200m \
-e DRONE_RUNNER_NAME=runner-001 \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST=drone \
-e DRONE_RPC_SECRET=${RPC_SECRET} \
-v /var/run/docker.sock:/var/run/docker.sock \
drone/drone-runner-docker:1.3.0

最后 docker logs -f --tail 10 drone-runner 显示 successfully pinged the remote server 即为成功。

测试

首先打开 https://drone.52xckl.cn/ 完成 OAuth2 认证并激活项目。

在激活的项目中创建名为 .drone.yml 的文件:

1
2
3
4
5
6
7
8
9
kind: pipeline
name: test
type: docker
steps:
- name: test
image: golang:1.14-alpine
commands:
- CGO_ENABLED=0 GO111MODULE=on go test -count=1 -cover -v ./...
- CGO_ENABLED=0 GO111MODULE=on go run .

这段是 Go 相关项目的,如果编写该文件请查询相关官方文档。

参考文档

  • gitea

  • drone