手把手教你玩转 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)具体解释 ...
随机推荐
- 素数算法(Prime Num Algorithm)
素数算法(Prime Num Algorithm) 数学是科学的皇后,而素数可以说是数学的最为核心的概念之一.围绕素数产生了很多伟大的故事,最为著名莫过于哥德巴赫猜想.素数定理和黎曼猜想(有趣的是,自 ...
- 透过Redis源码探究Hash表的实现
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/667 本文使用的Redis 5.0源码 概述 我们在学习 Redis ...
- 求广义表深度(严5.30)--------西工大noj
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef enum{ATOM, LIST ...
- 在 macOS 上搭建 Flutter 开发环境
下载 Flutter SDK flutter官网下载:https://flutter.io/sdk-archive/#macos 若上述链接无法访问,可通过GitHub下载 https://githu ...
- CF Global Round 21 题解 (CDEG)
C 把 \(a,b\) 全拆开然后比较即可(因为分裂和合并是互逆的) 注意开 long long . using namespace std; typedef long long ll; typede ...
- linux 邮件
通过命令行发送邮件 [root@ProxyServer ~]# mail -s "test" justin@51cto.com dfdafd dfadf fadf EOT [roo ...
- 使用python3.7+Vue.js2.0+Django2.0.4异步前端通过api上传文件到七牛云云端存储
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_130 之前一篇文章是通过普通js+tornado来上传七牛云:使用Tornado配合七牛云存储api来异步切分上传文件,本次使用v ...
- mysql 8.0.28 查询语句执行顺序实测结果
TL;NRs 根据实测结果,MySQL8.0.28 中 SQL 语句的执行顺序为: (8) SELECT (5) DISTINCT <select_list> (1) FROM <l ...
- Spring源码 13 IOC refresh方法8
本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法. 其中一共有 13 个主要方法,这里分析第 8 ...
- 【面试题】JSON.stringify()妙用,你真的知道吗?
JSON.stringify()妙用 点击打开视频讲解更加详细 语法:JSON.stringify(value, replacer , space) value:将要序列化成 一个JSON 字符串的值 ...