Gitea是一个轻量级的Git托管服务,也就是基于Git的代码托管平台,类似于 GitHub 、Gitee等。
Gitea相对于其他代码托管平台,是一个可以本地部署的开源项目,非常轻量化,运行时对CPU和内存的需求较小,适用于个人或小型团队协作开发,适合在个人电脑或资源受限的服务器上使用。
2. Gitea的本地搭建本次搭建环境演示系统为Ubuntu18.04.4 LTS。
使用Docker容器进行搭建,Docker可以在系统中创建、运行和管理容器。
使用Docker Compose进行管理,Docker Compose是一个Docker拓展工具,可以协同管理多个容器。
2.1 下载安装Docker
本次的Gitea会搭建在容器中,这样做可以将应用程序及其依赖项打包到一个独立的环境中,应用就可以在任何地方运行。因此需要提前安装Docker,命令如下:
sudo apt install docker.io
验证是否安装成功,成功显示版本号则代表安装成功:
docker -v#成功显示Docker version 20.10.21, build 20.10.21-0ubuntu1~18.04.3
2.2 下载安装Docker Compose
Docker Compose可以统一管理多个容器的启动关闭和配置,是一个非常好用的容器管理工具。
这里提供两种下载方式,在线下载方式简单但有时候会出现较多的问题,离线下载比较稳定:
2.2.1 在线下载方式:
# github下载(外网源)sudo curl -L https://github.com/docker/compose/releases/download/2.30.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose# daocloud下载 (国内源)sudo curl -L https://get.daocloud.io/docker/compose/releases/download/2.30.3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
系统若无curl则提前安装:
sudo apt install curl
下载成功后添加可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
验证是否安装成功
docker-compose -v
如果发现有问题,请检查/usr/local/bin/docker-compose文件,如果发现大小只有几百字节或更小,并且查看发现仅仅为一个HTML页面,则代表镜像源下载失败了,建议换离线下载方式进行安装。
2.2.2 离线下载方式
到Docker Compose项目仓库下载对应架构的版本,官方网址:
https://github.com/docker/compose/releases
这里笔者的系统是x86_64架构,并选择2.30.3版本的程序下载:
直接将该exe文件改名放到/usr/local/bin/中,并修改权限:
#移动并改名sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose#修改权限sudo chmod +x /usr/local/bin/docker-compose
再验证是否安装成功:
#验证docker-compose --version#成功显示Docker Compose version v2.30.3
2.3 配置docker-compose.yml文件
首先创建一个用于存放配置文件的项目目录并进入:
mkdir ~/gitea && cd ~/gitea
在该文件夹中创建和编写docker-conpose.yml配置文件,docker-cpmpose命令执行时会自动识别当前文件夹的docker-conpose.yml配置文件,当然也可以指定其他路径的配置文件。
该docker-conpose.yml配置文件配置了两个服务,即Gitea和MySQL服务,MySQL为Gitea服务提供数据库支持:
若配置文件中注释无法被命令识别,则删除其中的注释再使用
# 定义网络配置networks: gitea: # 创建一个名为 'gitea' 的自定义网络 external: false # 表示该网络由 Docker Compose 自动创建,而不是使用外部网络# 定义服务配置services:
# Gitea 服务配置 server: # 使用 Gitea 镜像,指定版本为 1.21.1 image: gitea/gitea:1.21.1 # 容器名称设为 'gitea' container_name: gitea
# 环境变量配置 environment: - USER_UID=1000 # 设置 Gitea 进程运行的用户 ID 为 1000 - USER_GID=1000 # 设置 Gitea 进程运行的用户组 ID 为 1000 - GITEA__database__DB_TYPE=mysql # 设置数据库类型为 MySQL - GITEA__database__HOST=db:3306 # 设置数据库主机为 db 服务(MySQL 服务)并指定端口 - GITEA__database__NAME=gitea # 设置数据库名称为 gitea - GITEA__database__USER=gitea # 设置数据库用户为 gitea - GITEA__database__PASSWD=gitea # 设置数据库密码为 gitea # 容器的重启策略,容器停止后会自动重启 restart: always # 将容器连接到 'gitea' 网络 networks: - gitea # 使用上面定义的 'gitea' 网络
# 持久化存储和时区配置 volumes: # 将主机的 ./gitea 目录挂载到容器内的 /data 目录,用于存储 Gitea 的数据 - ./gitea:/data # 将宿主机的时区配置挂载到容器内,确保容器时区与主机一致 - /etc/timezone:/etc/timezone:ro # ro 表示只读 # 将宿主机的本地时间配置挂载到容器内,确保容器时间与主机一致 - /etc/localtime:/etc/localtime:ro # ro 表示只读
# 端口映射 ports: # 将宿主机的 3000 端口映射到容器的 3000 端口,Gitea Web 界面可通过宿主机 3000 端口访问 - "3000:3000" # 将宿主机的 222 端口映射到容器的 22 端口,用于 SSH 访问 Gitea - "222:22" # 定义依赖关系,确保 MySQL 服务在 Gitea 启动之前启动 depends_on: - db
# MySQL 数据库服务配置 db: # 使用 MySQL 镜像,指定版本为 8 image: mysql:8 # 容器名称设为 'mysql' container_name: mysql # 容器的重启策略,容器停止后会自动重启 restart: always
# 环境变量配置 environment: - MYSQL_ROOT_PASSWORD=gitea # 设置 MySQL root 用户的密码为 gitea - MYSQL_USER=gitea # 设置 MySQL 用户为 gitea - MYSQL_PASSWORD=gitea # 设置 MySQL 用户的密码为 gitea - MYSQL_DATABASE=gitea # 创建一个名为 gitea 的数据库
# 将容器连接到 'gitea' 网络 networks: - gitea # 使用上面定义的 'gitea' 网络 # 端口映射 ports: - "3306:3306" # 将宿主机的 3306 端口映射到容器的 3306 端口,供 Gitea 访问 MySQL
# 持久化存储 MySQL 数据 volumes: - ./mysql:/var/lib/mysql # 将宿主机的 ./mysql 目录挂载到容器内的 /var/lib/mysql 目录,持久化数据库数据
2.4 启动docker容器
sudo docker-compose up -d
如果启动出现超时报错,则需要更换加速镜像地址。
修改加速镜像地址需修改/etc/docker/daemon.json文件内容,若无该文件则创建再编写:
{ "registry-mirrors": ["https://docker-proxy.741001.xyz","https://registry.docker-cn.com"]}
保存文件修改,再依次执行如下命令重启docker:
sudo systemctl daemon-reloadsudo systemctl restart docker
docker服务重启后再次执行启动docker容器命令:
sudo docker-compose up -d
启动成功后,可以通过如下命令检查gitea服务的docker容器是否启动:
sudo docker ps#若成功则显示,可以看到对应的容器ID、镜像、端口映射、服务名称等CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES89825b4d35bb gitea/gitea:1.21.1 "/usr/bin/entrypoint…" 2 minutes ago Up 2 minutes 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:222->22/tcp, :::222->22/tcp giteacd7ef47cc0a9 mysql:8 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
2.5 访问本地Gitea服务
浏览器输入主机IP+端口,即可访问:
192.168.xx.xx:3000
初次进入后,会显示一个初始配置确认页面,如下图所示,该配置已正常读取docker-conpose配置,如果没有特殊需求直接点击立即安装即可:
安装完成后,注册账号并登录即可正常使用(服务中注册的第一个账号默认为管理员)。
在Gitea中,可以像其他代码托管平台一样实现版本控制、分支管理、代码审查、问题跟踪等功能。
Gitea同样也支持将其他托管平台代码迁移过来,进行仓库备份:
人在灯不灭,人体微动毫米波雷达模组,精准生命存在感知与距离探测
上新啦!ProfiNet网关、LoRa分布式IO、手机智能遥控开关、USB转换器等