pub.seven.blog/content/zh-cn/post/deploy-gitea-using-podman-on-linux.md

4.2 KiB
Raw Blame History

title date categories image
使用 Podman 在 Linux 上部署 Gitea 2025-01-03
科技
自托管
https://cdn.sunyz.net/assets/blog/banners/deploy-gitea-using-podman-on-linux.zh-cn.webp

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

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

安装 Podman 1

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

# 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。

建议使用 pipPython 的包管理器)安装 Podman Compose。

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

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

# 使用 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 文件,供参考。

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

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

# 创建 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 <git@example.com>。您也可以直接输入电子邮件地址 git@example.com

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

[mailer]
ENABLED = true
FROM = 
PROTOCOL = 
SMTP_ADDR = 
SMTP_PORT = 
USER = 
PASSWD = 

其他设置

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

结语

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