美文网首页
2019-08-14

2019-08-14

作者: rub1cky | 来源:发表于2019-08-14 15:46 被阅读0次

docker 搭建 gogs,drone , mysql 踩坑记录,防止以后再踩啊

  1. docker 创建 桥接网络

docker network create netname

  1. docker 创建mysql 容器

docker run -ti --name gogs-mysql -v /data/mysql/data:/var/lib/mysql -p 3310:3306 --network netname -e MYSQL_ROOT_PASSWORD=123123 mysql:5.7
重点: mysql数据库的密码必须定义不能跳过

  1. docker 创建gogs容器

docker pull gogs/gogs # 默认获取最新版本gogs
docker run --name gogs -ti --network netname -p 10010:3000 -p 10011:22 -v /data/gogs/data:/data --link gogs-mysql gogs

// 默认把gogs里的数据写到本地目录防止数据丢失
外部通过访问10010端口可以看到gogs的web目录, 具体的可以通过nginx代理,这里不是本教程重点
link 参数是两个容器之间可以通过ip互相访问
再可以访问gogs配置页面的时候

docker exec -ti gogs bash
cat /etc/hosts

可以看到mysql再gogs内的内部ip
写到指定位置就可以进入了

  1. 搭建drone
    drone干啥的不说
    重点1

volumes:
- /var/run/docker.sock:/var/run/docker.sock

docker 这个运行文件必须同样挂在到容器内部

重点2:

DRONE_USER_CREATE=username:volcan0,admin:true

必须创建admin账户,不然是不能挂载宿主的本地目录的,同样再进入仓库设置时勾选 Trusted

DRONE_GOGS_SERVER=https://你的.com
DRONE_SERVER_HOST=你的.com

可以设置ip或者直接域名都没有问题,最好ip吧,不然改来改去的

最后附上docker-compose.yml

version: '2'

services:
  mysql-gogs:
    image: 'mysql:5.7'
    restart: always
    ports:
      - '10036:3306'
    volumes:
      - /data/project/gogs-mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123456

  gogs:
    image: gogs/gogs
    ports:
      - '10081:22'
      - '10080:3000'
    volumes:
      - /data/project/gogs/data:/data
    restart: always
    links:
      - mysql-gogs:db

  drone-server:
    image: drone/drone:1
    ports:
      - '10083:80'
      - '10085:8000'
      - '10084:9000'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /data/project/drone/data:/var/lib/drone
    restart: always
    environment:
      - DRONE_GIT_ALWAYS_AUTH=false
      - DRONE_USER_CREATE=username:git,admin:true
      - DRONE_GOGS_SERVER=192.168.10.12
      - DRONE_SERVER_HOST=192.168.10.12
      - DRONE_SERVER_PROTO=http
      - DRONE_SECRET=handhand
      - DRONE_GOGS_PRIVATE_MODE=true
      - DRONE_TLS_AUTOCERT=false

  drone-agent:
    image: drone/agent:1
    command: agent
    restart: always
    depends_on: [ drone-server ]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_SERVER=drone-server:9000
      - DRONE_SECRET=handhand

相关文章

网友评论

      本文标题:2019-08-14

      本文链接:https://www.haomeiwen.com/subject/kmwgjctx.html