0
点赞
收藏
分享

微信扫一扫

docker-compose 之 gogs、drone


​docker-compose.yml​​ 文件内容如下示例:

version: '3'
services:
gogs:
image: gogs/gogs:0.12.10
container_name: gogs
ports:
# 访问gogs使用映射出来的3000端口
- "3000:3000"
- "10022:22"
volumes:
# 数据目录挂载出来
- /data/gogs/data:/data
restart: always

drone-server:
image: drone/drone:latest
container_name: drone-server
ports:
# 访问drone使用映射出来的8080端口
- "8080:80"
- "8443:443"
volumes:
# 数据目录挂载出来
- /data/drone:/var/lib/drone/
restart: always
environment:
# 打开 debug 模式
- DRONE_DEBUG=true
# 启动日志,默认是关闭的
- DRONE_LOGS_TRACE=true
# 启动 debug 日志,默认是关闭的
- DRONE_LOGS_DEBUG=true
- DRONE_OPEN=true
# 设置 drone-server 使用的 host 名称,可以是 ip 地址加端口号;容器中可以使用容器名称代替
- DRONE_SERVER_HOST=drone-server
- DRONE_GIT_ALWAYS_AUTH=false
# 开启 gogs
- DRONE_GOGS=true
- DRONE_GOGS_SKIP_VERIFY=false
# gogs 服务地址,使用容器名 + 端口号---注意点这里需有前面的HTTP
- DRONE_GOGS_SERVER=http://gogs:3000
# drone 的提供者,本项目中为 gogs服务
- DRONE_PROVIDER=gogs
# 配置 drone 数据库
- DRONE_DATABASE_DRIVER=mysql
# 配置 drone 数据库文件
- DRONE_DATABASE_DATASOURCE=root:123789@tcp(192.168.20.100:3306)/drone?parseTime=true
# 协议,可选 http、https
- DRONE_SERVER_PROTO=http
# 秘钥信息设置,主要是用在 drone-server 与 drone-runner 之间的 RPC 请求
- DRONE_RPC_SECRET=rpc_secret
# 秘钥信息设置,主要是用在 drone-server 与 drone-runner 直接的请求
- DRONE_SECRET=secret

drone-runner-docker:
image: drone/drone-runner-docker:latest
container_name: drone-runner-docker
depends_on:
- drone-server
volumes:
# 构建镜像需要调用宿主机的 docker.sock 文件
- /var/run/docker.sock:/var/run/docker.sock
restart: always
#privileged: true
environment:
# 打开 debug 模式
- DRONE_DEBUG=true
# 开始日志,默认是关闭的
- DRONE_LOGS_TRACE=true
# 启动 debug 日志,默认是关闭的
- DRONE_LOGS_DEBUG=true
# 和 drone-server 通讯的协议
- DRONE_RPC_PROTO=http
# 设置 drone-server 使用的 host 名称,可以是 ip 地址加端口号,不需要带 http 前缀
- DRONE_RPC_HOST=drone-server
# 秘钥,用于 drone-server 与 drone-agent 之间的 RPC 请求
- DRONE_RPC_SECRET=rpc_secret
# 秘钥,用于 drone-server 与 drone-agent 直接的请求
- DRONE_SECRET=secret
# 限制 runner 并发执行的流水线任务数量
- DRONE_RUNNER_CAPACITY=5
# 自定义 runner 的名称
- DRONE_RUNNER_NAME=drone-runner-docker

  • ​gogs​​ 是用于管理代码的服务,同 gitlab、github 这些,只是比较轻量,比较适合个人或者小团队使用。
  • ​drone-server​​ 为 Drone 的管理提供了 Web 页面,用于管理从 Git 上获取的仓库中的流水线任务。
  • ​drone-runner-docker​​​ 一个单独的守护进程,它会轮询 Drone Server,获取需要执行的流水线任务,然后后执行。这个 runner 是用来构建 docker 镜像的,它还有 ​​drone/drone-runner-kube​​​、​​drone/drone-runner-ssh​​ 等其他特定作用的兄弟。

(END)


举报

相关推荐

0 条评论