0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

超级干货!本地搭建代码托管平台Gitea

亿佰特物联网应用专家 2024-12-19 19:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 关于Gitea

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项目仓库下载对应架构的版本

这里笔者的系统是x86_64架构,并选择2.30.3版本的程序下载:

02237694-bdfd-11ef-8084-92fbcf53809c.png

直接将该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配置,如果没有特殊需求直接点击立即安装即可:

02440b34-bdfd-11ef-8084-92fbcf53809c.png

安装完成后,注册账号并登录即可正常使用(服务中注册的第一个账号默认为管理员)。

025d9428-bdfd-11ef-8084-92fbcf53809c.png

在Gitea中,可以像其他代码托管平台一样实现版本控制、分支管理、代码审查、问题跟踪等功能。

Gitea同样也支持将其他托管平台代码迁移过来,进行仓库备份:

026592e0-bdfd-11ef-8084-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90883
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73151
  • Git
    Git
    +关注

    关注

    0

    文章

    205

    浏览量

    16780
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    华硕Tinker edge R--gitea服务器的搭建教程

    概述 本篇文章是在 华硕AIoT国内战略合作伙伴--深圳风火轮团队提供的开发板 (华硕Tinker edge R)上,搭建一个本地gitea服务器。 Tinker Edge R是 华硕基于国产芯片
    的头像 发表于 08-09 11:17 2710次阅读

    Cadence本地搭建从0到1的过程

    本文将主要介绍Cadence本地搭建从0到1的过程,并提供搭建过程中所需要的安装软件。搭建Cadence本地库的目的主要是为了方便元器件的
    的头像 发表于 11-20 17:21 6304次阅读
    Cadence<b class='flag-5'>本地</b>库<b class='flag-5'>搭建</b>从0到1的过程

     华为云ServiceStage完美支持多个主流源码托管仓库

    之称的Gitee(码云),是开源中国推出的专为开发者提供稳定、高效、安全的云端代码托管以及软件开发协作平台,无论是个人、团队、或是企业,都能够用Gitee实现代码
    发表于 08-03 13:58

    本地测试环境搭建

    本文主要介绍了本地测试环境搭建搭建一个本地测试环境无疑是个明智的选择,再结合GitHub、Jenkins、Docker等工具,进行持续集成、资源隔离,既可以快速的构建、部署自己的项目,
    的头像 发表于 01-31 16:01 3332次阅读
    <b class='flag-5'>本地</b>测试环境<b class='flag-5'>搭建</b>

    如何搭建本地smtp服务器

    本文开始阐述的阐述了搭建本地smtp服务器的教程,另外还介绍了基于CentOS搭建SMTP服务器的详细教程。
    发表于 04-08 14:46 2w次阅读
    如何<b class='flag-5'>搭建</b><b class='flag-5'>本地</b>smtp服务器

    上传本地项目代码到github

    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。本文主要讲解如何将本地代码
    的头像 发表于 11-14 16:45 1714次阅读
    上传<b class='flag-5'>本地</b>项目<b class='flag-5'>代码</b>到github

    如何在Ubuntu 20.04安装Gitea

    Gitea是用Go语言编写的自托管开源git服务器。它是Gogs的分支。Gitea包含有文件编辑器,项目问题跟踪,用户管理,通知,内置Wiki等。
    的头像 发表于 01-04 17:23 2527次阅读

    【产品应用】如何通过ZWS-IoT低代码开发平台搭建一个环保系统

    使用ZWS-IoT低代码开发平台,可以快速搭建不同web应用页面,以及多个页面的物联网应用系统。本文将介绍通过ZWS-IoT低代码开发平台
    的头像 发表于 06-08 19:15 1110次阅读
    【产品应用】如何通过ZWS-IoT低<b class='flag-5'>代码</b>开发<b class='flag-5'>平台</b><b class='flag-5'>搭建</b>一个环保系统

    【产品应用】如何通过ZWS-IoT低代码开发平台搭建一个环保系统

    使用ZWS-IoT低代码开发平台,可以快速搭建不同web应用页面,以及多个页面的物联网应用系统。本文将介绍通过ZWS-IoT低代码开发平台
    的头像 发表于 07-31 16:59 1041次阅读
    【产品应用】如何通过ZWS-IoT低<b class='flag-5'>代码</b>开发<b class='flag-5'>平台</b><b class='flag-5'>搭建</b>一个环保系统

    本地电脑如何搭建云电脑,本地电脑搭建云电脑的步骤

        工作中,不可避免的会用到云电脑,实现电脑连接能方便工作,局域网远程桌面控制软件能帮助管理者解决,保障信息安全;提高工作效率;降低维护成本。今天小编跟大家讲讲本地电脑搭建云电脑的步骤
    的头像 发表于 12-23 13:31 1591次阅读
    <b class='flag-5'>本地</b>电脑如何<b class='flag-5'>搭建</b>云电脑,<b class='flag-5'>本地</b>电脑<b class='flag-5'>搭建</b>云电脑的步骤

    Gitee:玩转代码托管与协作的高效指南

    这个国外的项目托管平台。 Gitee 码云是开源中国推出的基于 Git 的代码托管服务中心,网址是 https://gitee.com 。 Gitee 的使用方式和 GitHub 基
    的头像 发表于 12-24 11:39 2629次阅读
    Gitee:玩转<b class='flag-5'>代码</b><b class='flag-5'>托管</b>与协作的高效指南

    云服务器Flexus X实例,Docker集成搭建Gitea私有仓库

    Gitea 私有仓库是一款轻量级的自托管 Git 服务,它提供了与 Github、Gitlab 等类似的功能,但允许用户在自己的服务器上部署和运行,从而完全掌控代码的存储和访问权限。
    的头像 发表于 12-29 15:51 709次阅读
    云服务器Flexus X实例,Docker集成<b class='flag-5'>搭建</b><b class='flag-5'>Gitea</b>私有仓库

    云服务器 Flexus X 实例:部署 Gitea,拥有自己的 Git 仓库,管理本地代码

    、零售、金融、游戏等众多领域的通用工作负载需求。本文旨在详细阐述如何高效利用“云服务器 Flexus X 实例”,包括如何在其中从零开始,通过安装相关依赖、安装 Docker、安装 Gitea 等步骤,实现自己的 Git 仓库,管理本地
    的头像 发表于 01-07 16:59 753次阅读
    云服务器 Flexus X 实例:部署 <b class='flag-5'>Gitea</b>,拥有自己的 Git 仓库,管理<b class='flag-5'>本地</b><b class='flag-5'>代码</b>

    代码平台:快速搭建与优化MES系统,提升生产效率

    和交付应用软件,全方位降低软件的开发、配置、部署和培训的成本。 二、低代码平台搭建MES系统的优势 1、快速开发: 低代码平台提供了丰富的模
    的头像 发表于 01-23 09:37 587次阅读
    低<b class='flag-5'>代码</b><b class='flag-5'>平台</b>:快速<b class='flag-5'>搭建</b>与优化MES系统,提升生产效率

    AI算法托管平台是什么

    AI算法托管平台是一种提供AI模型运行、管理和优化等服务的云端或边缘计算平台。下面,AI部落小编带您详细了解AI算法托管平台
    的头像 发表于 03-06 10:22 843次阅读