gitea mysql8_初试drone1.0+gitea—docker安装

最近研究了一下drone,尝试将drone1.0和gitea集合在一起,做CI服务;drone官方是有说明文档,支持gitea的,见drone server的安装文档;我个人安装过程中碰了一些坑,在这里记下安装过程。

先上docker-compose.yml文件:

version: "3.6"

services:

mysql:

image: mysql:${MYSQL_VERSION}

container_name: mysql

ports:

- "${MYSQL_HOST_PORT}:3306"

volumes:

- ${MYSQL_CONF_FILE}:/etc/mysql/conf.d/mysql.cnf:ro

- ${MYSQL_DATA_DIR}:/var/lib/mysql/:rw

restart: always

networks:

- default

environment:

MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"

TZ: Asia/Shanghai

gitea:

image: gitea/gitea:latest

container_name: gitea

environment:

TZ: Asia/Shanghai

volumes:

- /var/lib/gitea:/data

restart: always

networks:

- default

ports:

- "10022:22"

- "10080:3000"

drone-server:

image: drone/drone:latest

container_name: drone-server

ports:

- "8080:80"

- "8000:8000"

- "9000:9000"

volumes:

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

- /dnmp/drone/:/var/lib/drone/:rw

restart: always

environment:

- DRONE_GITEA_SERVER=http://192.168.88.190:10080

#- DRONE_GITEA_SERVER=http://127.0.0.1:10080

- DRONE_GIT_ALWAYS_AUTH=false

- DRONE_RUNNER_CAPACITY=2

- DRONE_SERVER_HOST=192.168.88.190

- DRONE_SERVER_PROTO=http

- DRONE_RPC_SECRET=9c3921e3e748aff725d2e16ef31fbc42

- DRONE_TLS_AUTOCERT=false

- DRONE_LOGS_DEBUG=true

- TZ=Asia/Shanghai

restart: always

networks:

- default

drone-agent:

image: drone/agent:latest

container_name: drone-agent

command: agent

restart: always

depends_on:

- drone-server

volumes:

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

environment:

#- DRONE_RPC_SERVER=http://192.168.88.190:9000

- DRONE_RPC_SERVER=drone-server:9000

- DRONE_RPC_SECRET=9c3921e3e748aff725d2e16ef31fbc42

- DRONE_RUNNER_CAPACITY=2

- DRONE_RUNNER_NAME=192.168.88.190

- DRONE_LOGS_DEBUG=true

- TZ=Asia/Shanghai

restart: always

#detach: true

networks:

- default

networks:

default:

我的环境是本地虚拟机centos7,上面IP地址是虚拟机的ip地址。

因为gitea是采用mysql数据库,所以要启动一个msyql的容器服务;通过命令docker-compose -f docker-compose.yml build命令先将镜像构建,其实都是用官方的镜像,构建这一步是很快的,只是做一个检查;

然后docker-compose -f docker-compose.yml up -d 将容器运行起来,通过docker ps -a可以查看到容器的状态:

573147be240b4a7c241d927a24cedcec.png

status这一栏都是正常的,表明服务就可以使用了。

先要配置gitea,通过http://192.168.88.190:10080/进入gitea的web页面,点击登录后,就会出现安装向导,填写信息,点击安装,等几分钟就ok了。安装的细节稍微要注意填写的地址和端口,容器内部要填写3000,对外开放的是10080。记住设置的管理员账号和密码,后面drone登录时也要用到。

然后通过http://192.168.88.190:8080/进入drone的web页面,如下:

628a29ebaf3d2c9ccedb8400441e4d4c.png

输入刚才在gitea设置的管理员账号和密码,就可以登录成功,就能看到如下页面:

95810fa47dcfed8fb98ab7f77c5f7f28.png

刚开始repositories是空的,点击右上方的sync按钮,等一分钟就会自动同步gitea项目过来;同步过来的gitea仓库,默认状态是没开启的。可以点击setting页面,进入设置,如下:

81deb1f724c76b5c7715cdefde9153e2.png

填写配置文件名字,默认是.drone.yml。点击save,就会开启。点击save的时候,drone会将配置信息同步给你的gitea,gitea项目那边会响应,然后配置一个webhook,这里有个坑,后面再讲。

顺利的话,你在gitea项目添加.drone.yal后,就会触发构建,我在gitea仓库test下建的.drone.yml文件:

workspace:

base: /go

path: src/web_api

pipeline:

build:

image: golang

environment:

TZ: Asia/Shanghai

commands:

- pwd

- go env

- date

- go version

- go build

- ls -a

提交gitea后,查看drone的状态:

e9719648f3dd19c7e34fda5b5287920f.png

第一步是clone代码,第二步是build,因为我的.drone.yml超级简单,没有后面的步骤,只是测试用的。第二步build的结果:

e4d052c46726c4c3b43a61fdf26c7728.png

看到正常运行,drone+gitea的服务就初步搭建起来了。后面通过在.drone.yml添加内容和服务,就能达到快速CI/CD的效果。

顺便记录一下踩的坑,刚开始我按照drone集成gitea的安装文档,将docker-compose.yml文件写好,运行docker-compose -f docker-compose.yml up -d 将容器运行起来,通过docker ps -a看到drone-server容器怎样都起不来,docker logs drone-server也看不出报错。

在网上找到drone+gitea的贴子,大部分都是drone0.8版本,鉴于此,我将drone的latest改为0.8,安装0.8版本的配置,重新运行,竟然跑起来了。跑起来后,我就摸索drone的配置和服务,后面发现1.0版本有一些配置跟0.8不一样,官方有说明,但不明显。见:

06dfd006064251c67468b80494cb31f2.png

1941320c4f3197affc4f358a19a9797a.png

1.0版本跑不起来的配置,是因为drone-server的服务,80端口没对外开放,据我目前的了解,1.0版本默认是开放80端口,我当时按照0.8版本的端口,配置了"8000:8000"和"9000:9000",就差80端口,所以服务一直不正常。

这里也会涉及到gitea的webhook,上面说的在drone将gitea设置为开启状态时,这两者会交互的,我们看下gitea的webhook:

df721201d79acc55c87463ef91dfa9d9.png

drone关联gitea项目时,就会有添加这个,但是端口不是8080,默认是80,就是没有端口的,类似:

http://192.168.88.190/hook?secret=TzY9LahcXEiQ8eoBDvqPYaw2VN5dJGG2

点击修改,加上前面设置的端口8080,点击保存,然后test 一下webhook,就能看到效果。

至此,drone1.0+gitea,docker部署安装的步骤就完成了。

drone更多细节,还有待继续研究。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值