手把手教你玩转 Gitea|使用 Docker 安装 Gitea - Gitea
source link: https://www.cnblogs.com/Gitea/p/docker.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
手把手教你玩转 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-rootless
1.17.2-rootless
dev-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:3000
HTTP 端口,从左到右的顺序是从主机映射到 Docker 容器。在此,您可以通过http://127.0.0.1:3000
直接访问到 Gitea 的 Web 界面,或通过反向代理引擎提供更具有扩展性的 SSL 集成,例如 Nginx。2222:2222
SSH 端口。这里主机侧暴露的端口为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 等。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK