【实用Docker推荐】搭建gitea-拥有自己的代码仓库
本文最后更新于61 天前,其中的信息可能已经过时,如有错误请发送邮件到2289035571@QQ.COM

感谢 TurboAI对本博客的的大力赞助。 创作不易,如果您觉得有帮助,请 支持LIncol29! 为了让我能够继续创作更好的内容,你也可以选择订阅博客的 VIP ,包年VIP仅需10元/年,所有VIP内容免费观看

日志

  • 2024/10/05:更新 git 如何上传代码仓库至 gitea

前言

一般写代码大家都习惯上传至 GitHub、Gitee 这些平台。不过有时候可能一些私密代码不方便上传这些公开平台,并且上传至公开平台的文件已经不是你的了。你无法掌握所有权。类似网盘资源和谐,有可能你的代码也被 和谐 了。

这时候 lincol29 想到需要自建一个可以管理代码版本的平台。Google 以后发现有三款产品符合我的需求。GitLab、Gitea、Gogs。

  • GitLab:完整的 git 集成环境,包含 npm,nuget,docker registry 等私有集成,还有完整的 CI/CD,k8s 集成方案。为了实现这些功能,GitLab 变得非常臃肿,docker 镜像就有 1 个多 G,对服务器性能要求比较严格。最低要求是 2c4g 的服务器。
  • Gitea:gitea 只是 git 的操作库,实现搭配了基础 wiki 这些功能,需要配合其他第三方库或工具才能提供更专业的支持。比如 cicd 要 drone。并且 Gitea 非常轻量,使用 docker 搭建只需要 200-300M 内存,让小服务器也可以运行
  • Gogs:摘自 bing ——Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

准备工作

  • docker 容器
  • docker-compose
  • 服务器 or NAS
  • 域名

群晖NAS使用docker容器部署Gitea

拉取gitea镜像

进入群晖 NAS 终端,拉取 gitea 的 docker 镜像。如果你无法使用代理,请查看

使用 Cloudflare 搭建 Docker Hub 镜像代理——实现国内访问docker

  • 拉取镜像
docker pull gitea/gitea:latest 1.22.2
  • 使用群晖 NAS 的注册表拉取镜像,如果实在无法拉取,可以邮件或者评论区留言联系我,我会给你发镜像包。

启动gitea容器

  • 从群晖 nas 中启动

【实用Docker推荐】搭建gitea-拥有自己的代码仓库 1

  • 编辑容器名称,选择自动启动

【实用Docker推荐】搭建gitea-拥有自己的代码仓库 2

  • 链接数据库容器,这里我选择的是 MySQL

【实用Docker推荐】搭建gitea-拥有自己的代码仓库 3

  • 选择端口,可以自定义。容器端口 3000 对应的是网页的端口

【实用Docker推荐】搭建gitea-拥有自己的代码仓库 4

  • 添加文件夹,这是容器的持久化映射目录

【实用Docker推荐】搭建gitea-拥有自己的代码仓库 5

【实用Docker推荐】搭建gitea-拥有自己的代码仓库 6

服务器使用docker-compose部署Gitea

  • 登录服务器,指定工作目录。(自行选择工作目录,放在你自己想要的位置)
work=/wwwroot/docker/gitea && mkdir -p $work && cd $work
  • 放行端口 3000 (以 3000 为例。等下会用到,你也可以自定义未使用的端口)

配置 Yaml

在 $work 目录下,也就是 /wwwroot/docker/gitea 这个目录中

  • 创建 yaml 文件。
vim docker-compose.yaml

docker-compose.yml 文件

version: "2"

services:
  server:
    image: gitea/gitea:latest  #目前最新版本为1.22.2
    restart: always
    volumes:
      - ./data:/var/lib/gitea
      - ./config:/etc/gitea
    ports:
      - "3000:3000"
      - "2222:2222"

查看端口是否被占用(以 3000 为例),输入:

lsof -i:3000  #查看 3000 端口是否被占用,如果被占用,重新自定义一个端口

如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~

如果出现:代表没有安装 lsof

-bash: lsof: command not found

运行:

apt install lsof  #安装 lsof

上线服务

  • 上线服务:
cd $work && docker-compose up -d

这时可以使用 ip + 端口访问

【实用Docker推荐】搭建gitea-拥有自己的代码仓库 7

使用Gitea

首次进入 Gitea 需要进行初始化配置,这个过程会有点慢,耐心等待即可。

初始配置Gitea

  1. 填写数据库类型 – MySQL
  2. 数据库主机 – IP 加端口
  3. 数据库的用户名和密码
  4. 数据库名称 – gitea
    【实用Docker推荐】搭建gitea-拥有自己的代码仓库 8

这时候初始配置成功了,可以自己尝试使用 gitea 去上传代码吧

【实用Docker推荐】搭建gitea-拥有自己的代码仓库 9

上传代码仓库到Gitea

1、创建仓库

image-20241005152144238

2、复制项目的HTTP地址,点击右边红色圆圈圈住的两个小方块即可复制

image-20241005152517211

3、安装Git

安装Git的步骤省略,自行下载即可。git官方下载地址

选择操作系统对应版本下载

image-20241005152847415

4、Git 指令

git init

git add .    `中间有个空格`

git commit -m "注释"   ` "" 里面为注释内容,自行填写。忽空白`

git remote add origin git地址  `origin是自己命名`

git pull --rebase origin main  `master/main 是分支`

git push -u origin main

git push -f origin main  `强制推送`

报错解决

身份验证失败

上传代码时报:Authentication failed for xxx 网站

image-20241005155323927

推送分支失败

git创建的为 master 分支

gitea创建仓库分支默认为 main 分支

推送分支失败。本地仓库和远程仓库分支名称不一致。

image-20241005160452893

检查你当前所在的分支。

git branch

1、如果远程分支名为 main,你可以推送到远程的 main 分支:

git push -u origin master:main

2、修改名称为 main,然后重新上传

git branch -m master main

解决根本原因

从 2020 年 10 月 1 日开始,GitHub上的所有新库都将用中性词「main」命名,取代原来的「master」,因为后者是一个容易让人联想到奴隶制的术语。

将Git、gitea的分支都默认设置为 main 即可

git config --global init.defaultBranch main

参考文档

What is Gitea? | Gitea Documentation : Gitea 的官方文档,如有不懂可自行翻阅。

https://github.com/go-gitea/gitea : gitea 在 githup 的开源地址

创作不易,如果您觉得有帮助,请支持LIncol29!
如有需要,请至网站地图学习本博客的教程
博客订阅:通过RSS或关注公众号[Lincol的编程世界] | 广告招租与合作请留言
本文链接:https://www.lincol29.cn/dockergitea
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0协议转载请注明文章地址及作者哦~

评论

  1. Windows Edge
    北京市 移动/数据上网公共出口
    3 月前
    2024-9-06 17:07:30

    早早都用上啦,gitea功能比其他的都要好一些,最喜欢的就是它的镜像功能,像其他只能同步,不支持后续自动更新。

    • 博主
      萧瑟
      Windows Chrome
      广东省深圳市 电信
      3 月前
      2024-9-06 17:26:55

      确实,目前使用起来感觉挺好的。如果有条件可以尝试一下gitlab。

  2. Linux Chrome
    贵州省黔南州 移动
    3 月前
    2024-9-07 7:08:14

    怎么感觉和GitHub、Gitee换汤不换药呢😂

    • 博主
      刘郎
      Windows Chrome
      广东省深圳市 电信
      3 月前
      2024-9-07 8:28:09

      区别就是前言中说的,github和gitee是公开平台,gitea是自己部署的。现在更喜欢资料掌握在自己手中😂

      • Lincol
        Linux Chrome
        贵州省贵阳市 移动
        3 月前
        2024-9-07 8:43:45

        是的 当然是自己的东西自己保存最好了

  3. 小李
    iPhone Safari
    广东省深圳市 移动
    3 月前
    2024-9-07 9:16:35

    这个很需要呀。工作代码直接自部署了。

  4. Macintosh Safari
    福建省厦门市 移动
    1 周前
    2024-11-28 14:37:41

    你好,可以发一个gittea最新稳定版的docker镜像,带标签的一个给我吗?多谢了

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
学累了就来张美女图片养养眼吧~~~
API Image