在CentOS7上使用gitea搭建git服务器

0x00 准备

  1. 系统:CentOS7
  2. Docker: 任意版本
  3. Mysql: 5.6+ (如果使用)
  4. 项目:Gitea(开源,基于Golang)

0x01 安装

1. 拉取镜像
$ sudo docker pull gitea/gitea:latest

git-拉取镜像

2. 在宿主机中创建用于持久化保存的目录,供docker的容器挂载(强烈不建议在容器中保留数据)
$ sudo mkdir -p /var/lib/gitea

下面是项目启动后的上面创建路径列表
git-path

3. 启动容器,运行 Gitea项目
$ sudo docker run -d --name=gitea -p 10222:22 -p 10080:3000 -v /var/lib/gitea:/data gitea/gitea:latest

上面,ssh使用的是宿主机的10222端口,web页面使用的是10080端口,可以视情况自行更换。
git-启动容器
查看项目正在运行的容器状态
git-container-gitea

4. 如果启动容器的时候,出现以下错误:绑定的宿主机的端口被占用了

git-启动容器-端口被占用
使用如下命令查找被占用的端口

$ lsof -i:10022
$ ps aux|grep 1668

git-查找占用的端口

  • 如果可以释放被占用的端口,我们重新启动容器即可
$ sudo docker container ps -a #查看当前所有的容器

git-container-ps

$ sudo docker container start b77e3
b77e3

git-container-start

  • 如果被占用的端口无法释放,我们需要删除刚刚启动的容器,更换端口后再重新启动。否则,会出现名字被占用的情况(容器的名字须唯一)
$ sudo docker rm gitea
$ sudo docker run -d --name=gitea -p 10222:22 -p 10080:3000 -v /var/lib/gitea:/data gitea/gitea:latest

git-container-rm-restart

此时 应该可以访问 http://192.168.20.225:10080 (宿主IP+刚才绑定的10080端口) 了

0x02 配置Gitea

  1. 打开 http://192.168.20.225:10080
    git-未安装首页

点击任意链接,进入配置页面
git-install-page-index

  1. 配置数据库

    • 如果选择使用MySQL
      需要首先创建一个空的数据库,初始化程序会自动填充初始表和初始数据。建议字符使用utf8mb4,数据库版本大于 5.6

git-install-page-mysql

此处使用的默认SQLite3, 图中的路径要和上面容器启动时绑定的路径相同(默认是/data)。
git-install-page-index

  1. 配置 IP&端口

    • SSH 服务域名:使用宿主机 IP
    • SSH服务端口 和 HTTP服务端口不变
    • Gitea基本URL: 使用宿主机IP、端口使用上面绑定的端口(这里是10080)
      git-install-ip-port
  2. 点击 立即安装 按钮,等待一会,就会跳转到登录页面了。
    git-注册页面-first

点击 注册 的链接,跳转到注册页面,第一个用户 为超级管理员。

  1. 如果上述步骤有填写错误,可以修改配置文件,在宿主机上/var/lib/gitea/conf/app.ini
    git-app-ini
git

我来吐槽

*

*