手把手教你玩转 Gitea|使用 Docker 安装 Gitea
使用 Docker 安装 Gitea 的过程非常简单的,堪比“一键式”安装。Gitea 安装使用系列教程将会从多种方式进行全方位的实操演示。
视频演示中使用腾讯云实验环境安装 Docker 并快速启动 Gitea
环境准备
服务器配置
| OS | Version | CPU | RAM |
|---|---|---|---|
| Debian Linux | bullseye |
2 Core | 4GB |
本文所采用的服务器配置如下,建议内存最少在 1GB 以上。OS 版本可以是 Debian、Ubuntu、Fedora 以及 CentOS,本文优先使用 Debian,其他系统发行版的会在后续文章中酌情演示。
Docker 运行环境
最新的 Docker Engine 和 Docker Desktop 集成了 docker compose 命令行工具。更多信息请参阅:
- Docker Engine 安装指南:https://docs.docker.com/engine/install/
- Docker Engine 一键安装脚本:
curl -fsSL https://get.docker.com | bash - 解决 docker 命令执行权限问题:https://docs.docker.com/go/daemon-access/
- 检查 docker 运行环境:
docker info
选择镜像
Gitea 提供了标准的容器镜像(gitea/gitea),统一支持 SQLite、MySQL、PostgreSQL 和 SQL Server 作为数据库后端。每个版本的镜像同时支持两种主流的处理器体系结构 amd64 和 arm64/v8。
镜像标签
- 最新的稳定版
latest
- 固定在某个稳定版
1.17.2,1.17,1
- 最新的开发版,随 Gitea 代码合并同步更新
dev
Rootless 镜像
Rootless 镜像使用 Gitea 内建的 Go SSH 提供 Git 服务,代替了 OpenSSH。
在选用 rootless 镜像时,加上镜像标签 -rootless。支持的镜像标签如下:
latest-rootless,1-rootless1.17.2-rootlessdev-rootless
安装 Gitea
环境变量
在集群模式安装 Gitea 时,您可以通过环境变量为 Gitea 容器指定一些共享的初始值,例如 UID/GID、数据库连接参数、共享密钥等。诸如数据库和 Gitea 的一些功能配置选项最终都会在安装引导界面结束后写入到 app.ini 文件并保存。因此,如果是作为单实例部署的 Gitea,您无需关心如何设置这些环境变量,稍后的初始化安装过程会为您自动生成这些配置。初始化完成后,您可以在多个 Gitea 实例间共享同一份配置文件和数据缓存来实现服务器集群。
启动 Gitea
创建工作目录
首先创建一个 gitea 工作目录,后续工作都在这个目录下完成。
mkdir ~/gitea && cd ~/gitea
# 预先创建 data 和 config 目录,稍后用于数据挂载
mkdir data config
chown 1000:1000 data config
创建 docker-compose.yml
使用下面的模板创建 docker-compose.yml,这里使用到的镜像是 gitea/gitea:1.17.2-rootless。
rooless 版本的镜像默认使用 UID/GID 1000:1000 作为程序运行的用户组,为了保证 gitea 程序挂载权限正确的数据目录,我们在前面的步骤中预先创建了
data和config目录。
version: "3"
services:
server:
image: gitea/gitea:1.17.2-rootless
container_name: gitea
restart: always
volumes:
- ./data:/var/lib/gitea
- ./config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:2222"
几个重要的参数说明:
volumes:数据挂载./data:/data,将主机当前目录下的data目录挂载到容器内的/var/lib/gitea目录。/data是 Gitea 标准容器的数据存储点,包含了 Git 仓库、SQLite 数据库文件、缓存文件等。./config:/etc/gitea挂载 Gitea 的 app.ini 配置文件所在的目录。/etc/timezone:/etc/timezone:ro用于指定时区/etc/localtime:/etc/localtime:ro同上,用于指定本地时间
ports:端口映射3000:3000HTTP 端口,从左到右的顺序是从主机映射到 Docker 容器。在此,您可以通过http://127.0.0.1:3000直接访问到 Gitea 的 Web 界面,或通过反向代理引擎提供更具有扩展性的 SSL 集成,例如 Nginx。2222:2222SSH 端口。这里主机侧暴露的端口为2222避免了与默认 SSH 服务端口冲突。禁用 SSH 时删除端口转发即可。如果您希望将主机完全作为 Gitea 服务器,可以将主机配置文件/etc/ssh/sshd_config中的端口Port 22更改为其他值,使得 Docker 可以使用 Gitea 内建的 Go SSH 或 OpenSSH 占用 22 端口作为 Git 服务。
启动 Gitea 实例
使用 docker compose 命令拉取镜像并启动 Gitea 实例:
docker compose up -d
用 docker compose ps 查看容器:
NAME COMMAND SERVICE STATUS PORTS
gitea "/usr/local/bin/dock…" server running 2222/tcp, 0.0.0.0:3000->3000/tcp
用 docker compose logs -f 查看容器日志:
$ docker compose logs -f
gitea | 2022/09/26 14:50:31 cmd/web.go:106:runWeb() [I] Starting Gitea on PID: 1
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/local/bin/gitea
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /var/lib/gitea
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /var/lib/gitea/custom
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /var/lib/gitea/data/log
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:25:PreloadSettings() [I] Configuration file: /etc/gitea/app.ini
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:26:PreloadSettings() [I] Prepare to run install page
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:29:PreloadSettings() [I] SQLite3 is supported
gitea | 2022/09/26 14:50:31 cmd/web.go:217:listen() [I] [63314bb7-6] Listen: http://0.0.0.0:3000
gitea | 2022/09/26 14:50:31 cmd/web.go:221:listen() [I] [63314bb7-6] AppURL(ROOT_URL): http://localhost:3000/
当看到上述日志的时候可以认为实例已经启动了,在浏览器中输入 http://localhost:3000/ 即可登陆 Gitea 实例进行初始化设置。
登录 Gitea
首次安装 Gitea 后,在浏览器中输入 http://localhost:3000/ 访问初始化页面,按需设置服务器信息。第一个注册的用户账号为管理账号。

至此已经用 Docker 的方式来成功安装和运行了 Gitea 实例,接下来就可以使用了,诸如代码托管、团队人员管理、配置持续集成工具 Drone、Jenkins 等。
手把手教你玩转 Gitea|使用 Docker 安装 Gitea的更多相关文章
- 手把手教你玩转SOCKET模型之重叠I/O篇(下)
四. 实现重叠模型的步骤 作 了这么多的准备工作,费了这么多的笔墨,我们终于可以开始着手编码了.其实慢慢的你就会明白,要想透析重叠结构的内部原理也许是要费点功夫,但是只是学会 如何来使用它,却 ...
- 转:变手把手教你玩转SOCKET模型之重叠I/O篇
手把手教你玩转SOCKET模型之重叠I/O篇 “身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人.我也希望大家能把自己的所学和他人一起分享,不要去鄙 ...
- 手把手教你玩转 CSS3 3D 技术
css3的3d起步 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上的2D事物,从而展现3 ...
- 手把手教你玩转CSS3 3D技术
手把手教你玩转 CSS3 3D 技术 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上 ...
- 知识全聚集 .Net Core 技术突破 | 我用C#手把手教你玩微信自动化一
知识全聚集 .Net Core 技术突破 | 我用C#手把手教你玩微信自动化一 教程 01 | 模块化方案一 02 | 模块化方案二 03 | 简单说说工作单元 其他教程预览 分库分表项目实战教程 G ...
- C#:手把手教你用C#打包应用程序(安装程序卸载程序)
摘要:本文介绍在C#中手把手教你用C#打包应用程序(安装程序卸载程序) 1:新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点 ...
- 手把手教你玩转 Gitea|使用 Helm 在 K3s 上安装 Gitea
前言 在前面的文章中,演示了如何用 Docker 镜像和 Windows 二进制包来安装运行 Gitea.今天是玩转 Gitea 系列的使用 Helm 在 K3s 上安装 Gitea. 关于 Gite ...
- 手把手教你玩转 Gitea|在 Windows 系统上安装 Gitea
Gitea 支持在 Windows 系统上安装和使用.Gitea 本身作为一个单体应用程序,即点即用,如需长期驻留作为后台服务并开机运行就要依靠 Windows 服务工具 sc.exe. 通过本文,你 ...
- 完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三
手把手叫你玩转网络编程系列之三 完毕port(Completion Port)具体解释 ...
随机推荐
- Note -「狄利克雷前缀和」
学到一个诡异东西,当个 Trick 处理用吧. 现在有一个形如 \(\sum \limits _{i = 1} ^{n} \sum \limits _{d | i} f(d)\) 的柿子,不难发现可以 ...
- 了解有哪几个C标准&了解C编译管道
下列哪个不是C标准.参考:C语言标准 小知识:C语言标准的发展 K&R C: 1978年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)出版了 ...
- Vue 父组件传递给子组件,设置默认值为数组或者对象时
在vue 父子组件传参过程中,传递对象或者数组时,设置默认值为{}或者[] 错误写法: props: { pos: { type: [Object, Array], default: []//这是错误 ...
- ARC129E Yet Another Minimization 题解 【网络流笔记】
超神的建模,极其有借鉴意义/cy 注:该建模对应于最小割建模 对于 \(n\) 个数,每个数有 \(m\) 种取值的技巧 \(\forall i=1,2,\dots,n\),令 \(S=V_{i,0} ...
- Kubernetes的整体架构
K8s将集群中的机器划分为一个主节点和一群工作节点,在主节点上运行着集群管理相关的一组进程kube-apiserver.kube-controller-manager 和 kube-scheduler ...
- 结束语句之 continue
C 语言自学之 continue Dome1:计算1到20之间不能被3整除的数字之和. 运算结果为: sum=147 1 #include<stdio.h> 2 ...
- LuoguP5390 [Cnoi2019]数学作业(数论)
转进制,然后发现贡献只有\(1_{(2)}\),取奇数个的子集方案是\(2^{n-1}\) #include <iostream> #include <cstdio> #inc ...
- Spring源码 02 项目搭建
参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...
- mybatis 14: 多对一关联查询
业务背景 根据订单id查询订单的信息,以及该订单所属的客户的基本信息(不包括该客户自己的订单信息) 两张数据表 客户表 订单表 实体类 客户实体类:Customer private Integer i ...
- Java SE 15 新增特性
Java SE 15 新增特性 作者:Grey 原文地址:Java SE 15 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...