Featured image of post 使用 Podman 在 Linux 上部署 Gitea

使用 Podman 在 Linux 上部署 Gitea

声明:如本文之中、英文版本有任何歧义,均以英文版为准。我们会尽力保证中文版的准确性。

Gitea 是一个轻量级的自托管 DevOps 平台,提供 Git 托管、代码审查、团队协作、软件包注册和 CI/CD 等功能。
为确保 Gitea 满足您的需求,建议在安装前阅读 Gitea 与其他竞品(如 GitLab 社区版)的对照表

安装 Podman 1

Podman 可以通过包管理器安装(推荐)或手动从源代码构建。

1
2
3
4
5
6
# Debian & Ubuntu
sudo apt-get install podman
# Arch & Manjaro
sudo pacman -S podman
# Alpine
sudo apk add podman

如果您使用的是 RHEL,请参阅 Red Hat 知识库中对应的文档

安装 Podman Compose 2

Podman 本体不支持 Compose 规范。要使用类似 Docker Compose 的功能,我们需要安装一个由社区维护的实用程序 Podman Compose。

另,Podman 原生支持 Kubernetes,您也可以使用 Kubernetes 的配置文件来运行 Gitea。

建议使用 pip(Python 的包管理器)安装 Podman Compose。

1
2
sudo apt-get install python3-pip -y
pip3 install podman-compose

如果遇到 externally-managed-environment 的错误,可以尝试以下两种解决方案。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 使用 pipx
sudo apt-get install pipx -y
sudo pipx ensurepath --global
pipx install podman-compose

# 创建虚拟环境
# 若使用此方法,您只能在当前文件夹中使用 podman-compose
python3 -m venv .venv
source .venv/bin/activate
pip install podman-compose

撰写 Compose 文件 3

Podman Compose 使用与 Docker Compose 相同的语法。因此您甚至可以直接复制 Gitea 官方文档中的 docker-compose.yml 文件。

以下是我的 Compose 文件,供参考。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
services:
  gitea:
    image: docker.io/gitea/gitea:latest
    container_name: gitea
    restart: unless-stopped
    network_mode: host
    environment:
      - USER_UID=1000
      - USER_GID=1000
    volumes:
      - /usr/local/gitea/data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

使用上述配置需要执行以下命令。

1
2
3
4
5
6
# 创建 Gitea 的目录
mkdir /usr/local/gitea /usr/local/gitea/data
# 允许容器对数据文件夹进行读写
chown 1000:1000 /usr/local/gitea/data
# 运行 podman compose
podman-compose up -d

注意:Gitea 默认使用 SQLite 数据库。如果需要使用外部数据库(MySQL 或 PostgreSQL),请在 Gitea 配置部分后添加相应的配置。

配置 Gitea

在启动容器后,您应该访问 http://SERVER_IP:3000,并按照安装向导进行操作。第一个注册的用户将成为站点管理员。

此后,您可以在 CUSTOM_FOLDER/gitea/conf/app.ini 中找到 Gitea 的配置文件,其中包含您之前在安装向导中输入的设置信息。

邮件通知 4

Gitea 支持以下协议:smtp、smtps、smtp+starttls、smtp+unix、sendmail、dummy。最常用的是 smtps,如果不确定使用哪种协议,请选择 smtps。

FROM 属性的值应为类似发件人名称 <电子邮件地址>的格式,例如 Gitea <[email protected]>。您也可以直接输入电子邮件地址 [email protected]

如果您的密码包含特殊字符,请在密码两侧加上单引号 (')。

1
2
3
4
5
6
7
8
[mailer]
ENABLED = true
FROM = 
PROTOCOL = 
SMTP_ADDR = 
SMTP_PORT = 
USER = 
PASSWD = 

其他设置

请查阅配置说明以了解更多配置项的说明,例如 SSL、Git LFS 和 Oauth。

结语

现在,您可以使用您的 Gitea 实例了。

使用 CC BY-NC-SA 4.0 协议授权
comments powered by Disqus
构建版本 95189de 于 production 频道
主题 StackJimmy 设计
Seven 带着 💖 分叉修改