Drone + gogs CI

Drone是一个CI/CD平台,支持通过docker来分发和使用。Gogs使用介绍Gogs是一款类似Github(国内有码市)的开源文件/代码管理系统。
相比使用rancher+gitlabCI的解决方案使用Drone + gogs更轻量级,服务器资源有限的中小型团队和个人开发者使用是比较好的。

前提条件:

安装 Docker、Docker-Compose,参考本博客之前的文章

创建文件夹

mkdir -p/data/program/drone-ci/gogs-data
mkdir -p /data/program/drone-ci/drone

cd /data/program/drone-ci/

nano docker-compose.yml

docker-compose.yml

mkdir -p/data/program/drone-ci/gogs-data
mkdir -p /data/program/drone-ci/drone

cd /data/program/drone-ci/

nano docker-compose.yml

docker-compose.yml

version: '2'

services:
  gogs:
    image: gogs/gogs:0.11.53
    ports:
      - "10081:22” # 这里是有双引号的,gogs ssh端口映射到宿主机10081
      - 10082:3000 # gogs web端口映射到宿主机10082
    volumes:
      - /data/program/drone-ci/gogs-data:/data
    restart: always
  drone-server:
    image: drone/drone:0.8.1
    ports:
      - 10083:8000 # drone web 端口映射到宿主机10082
      - 10084:9000 # drone 服务端口
    volumes:
      - /data/program/drone-ci/drone:/var/lib/drone # drone存储文件映射到宿主机上
    restart: always
    environment:
      # 开启注册,此配置允许任何人自注册和登录系统
      - DRONE_OPEN=true
      # 设置管理员用户
      - DRONE_ADMIN=admin
      # 开启Gogs驱动
      - DRONE_GOGS=true
      # Gogs服务器地址
      - DRONE_GOGS_URL=http://宿主机IP或者域名:10082
      # 此SECRET为任意值
      - DRONE_SECRET=handhand
      - DRONE_HOST=http://宿主机IP或者域名
#      - DRONE_GOGS_SKIP_VERIFY=true
      - DRONE_GOGS_PRIVATE_MODE=true
  drone-agent:
    image: drone/agent:0.8.1
    command: agent
    restart: always
    depends_on: [ drone-server ]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      # Drone Server 地址
      - DRONE_SERVER=drone-server:9000
      # 与Drone Server一致即可
      - DRONE_SECRET=handhand

启动docker-compose

docker-compose up -d

gogs初始化

创建数据库

gogs可以使用mysql存储,需要提前创建数据库,在mysql中创建名为gogs到数据库,字符集为utf8,排序规则为utf8_general_ci.

首次运行安装向导:http://IP地址:10082

注:

域名:宿主机IP或者域名

ssh端口号:10081

http端口号:3000(这个为docker容器内监听的端口)

应用url: http://宿主机IP或者域名:10082

可选设置:
禁用用户自注册:内部使用,所有账号由管理员创建

创建管理员:填写管理员账号密码

参考 http://readme.drone.io/

你可能感兴趣的:(Drone + gogs CI)