在2016年-2019年,SkywenCode技术团队使用码云Gitee 作为线上代码库管理,基于敏捷开发和持续构建的思路,我们整体基础建设以Drone / Jenkins + Docker 的方式构建和部署整个基础建设体系。
在接下来的时间里,SkywenCode技术团队基础建设系列会基于每一步的进展和采坑推出相应的教程,用于团队的经验总结回顾,以及分享和开放给有需要的团队或个人参考。
本篇主要介绍01 Gitea Docker 安装部署。
01
安装教程
Docker 安装部署
这里推荐用Daocloud 平台做镜像加速,或者其他加速平台,Docker 安装不做教程说明,默认以docker和docker composer安装好开始下一步。
Gitea Docker Compose 配置文件注释和说明
从gitea官方文档,docker安装途径copy而来。
Docker Gitea部署步骤
1、在合适的位置创建文件夹,将其作为网站部署【本教程安装测试于windows环境下】
具体,如下截图:
当前部署的根目录为http://gitea.hiwilliam.cn,目录下仅有docker-compose.yml,内容为上面的compose文件配置。
2、
dockers会自动根据compose 文件拉去所需要的镜像,例如本次教程的gitea本体镜像和依赖的mysql镜像。
【如果要停止拉取,快捷键ctrl+c】
部署完成:
docker-compose ps 检查服务运行状态:
3、确认服务处于up状态下,浏览器访问 host:3000,或者配置好的域名,出现如下页面,说明gitea本地部署已完成,服务器部署过程相同。
02
相关配置
Gitea 初始配置
1、点击登录、注册或者探索皆可,跳转到初始配置表单页面。
配置表单的数据库配置因为我们在compose 文件中都已设置好初始变量,所以这里不用做任何更改。尤其数据库的类型和主机因为docker 启动容器服务绑定的,改为其他值反而会出错。
2、下面的一般设置主要是关于gitea仓库的站点相关信息。
a. 站点名称根据自己喜好设置,而仓库根目录,LFS根目录,以用户名运行请保持默认不要改动。原因和数据库类型一样在服务部署时就已绑定。
b. ssh服务域名如果本地构建就保持默认,如果线上服务器则改为服务器公网ip地址,ssh服务端口请和compose文件中保持一致,
c. http服务端口也和compose文件保持一致。基本url如果本地默认或者设置好并绑定的虚拟域名,线上填写解析过的一个域名。
d. 总结:所有端口和目录相关配置请保持默认。
Gitea 可选配置
- 电子邮箱配置
主要是设置用gitea仓库内容邮箱发送的基础配置,如若不用,可忽略。
- 服务设置
主要是针对gitea仓库站点的相关设置,如访问限制等。
- 管理员账号设置
为gitea仓库添加一个管理,不设置的话则默认第一个注册的账号为管理员账号。
至此,gitea相关配置完成,点击立即安装,即可完成安装。
Gitea 更多配置说明
除了安装过程的表单设置,我们还可以修改gitea的配置文件来修改gitea服务。具体地址:
1、进入上面的路径的conf文件,复制app.ini文件,做好备份,万一玩崩了还能回来。至于可配置依旧是那个原则,凡是【目录和端口】的配置修改都要谨慎,尽量不要修改!这里贴出部分常用配置:
2、执行docker-compose restart重启服务
这里注意:有时dockerc-compose构建目录有环境变量【.env文件】,所以最好是在项目的根目录执行docker-compose命令 ,例如本次部署http://gitea.hiwilliam.cn为根目录。当然本次过程没有使用变量所以就无所谓了,只要不跳出根目录。
03
教程总结
gitea的docker部署方式非常便捷,官方文档说明也非常详细,选择很多样,只要对docker的有基本的认知和了解都可以轻易上手。如果在部署途中失败或者其他问题,可以通过以下命令来解决。
当然,仅仅简单如此部署是不适合生产的。尤其数据的存放,不仅仅是gitea容器映射的数据卷,还有gitea服务依赖的db服务-MySQL,为此可以考虑使用定时备份gitea映射的数据卷到oss,以及将本地依赖的db服务改为RDS。
除此之外如何将代码从旧的git仓库迁移到新部署的gitea仓库也是需要我们考虑实现的。
作者 / HiWilliam
排版 / 大野鱼头