什么是 Gitea?

Gitea 是一个免费开源的 Git 存储库管理系统,可以在 Docker 容器中轻松安装和运行。Gitea 提供了一个方便的 Web 应用程序界面,用于管理 Git 存储库及其开发的各个方面。Gitea 既可以在本地使用,也可以在云模式下使用。

为什么在 Docker 容器中使用 Gitea?

Docker 容器允许将应用程序与主机操作系统及其依赖项隔离。这使得 Gitea 可以方便地在任何平台和任何环境中安装、配置和使用。Docker 容器还提供可扩展性、简化依赖关系管理并实现更安全的部署和操作。

要在 Docker 中安装 Gitea,您的服务器上必须已安装 Docker 和 docker-compose。有关如何安装Docker + docker-compose + Portaine r 的更多信息,可以阅读这篇文章

Creating configuration files

创建gitea文件夹,创建配置docker-compose.yml

mkdir gitea 
cd gitea 
nano docker-compose.yml

创建一个gitea文件夹,用于存储 docker-compose.yml 配置文件和其他 Gitea 相关文件。

使用文本编辑器创建 docker-compose.yml 文件并粘贴以下代码:

version: "3"

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    restart: always
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./data:/data
      - ./custom:/app/gitea/custom
      - ./log:/app/gitea/log
    ports:
      - "3000:3000"
      - "2222:22"

这里:

  • image: gitea/gitea:latest指定您要使用 Docker Hub 上提供的最新版本的 Gitea。
  • container_name: gitea设置 Docker 容器的名称。
  • restart: always如果容器停止,则自动重新启动容器。
  • environment: - USER_UID=1000 - USER_GID=1000设置将在容器中使用的用户 ID 和组。
  • volumes: - ./data:/data - ./custom:/app/gitea/custom - ./log:/app/gitea/log定义硬盘上存储 Gitea 数据 (./data)、自定义配置文件 (./custom) 和日志 (./log) 的位置。
  • ports: - "3000:3000" - "2222:22"指定将用于访问 Gitea 的端口。第一个端口 (3000) 用于 Web 界面,第二个端口 (2222) 用于通过 SSH 访问存储库。

使用 Gitea 启动容器

进入docker-compose.yml文件所在目录。

使用以下命令启动容器:

sudo docker-compose up -d

这将在后台启动 Gitea 容器。首次启动可能需要几分钟。

gitea设置页面

启动后,打开Web浏览器并输入地址http://server-ip:3000访问gitea Web界面。您应该看到登录页面。根据您的配置填写所有必填字段。在“服务器域”字段中,请务必指定指向您的服务器的 IP 地址或域名。

如果您在安装过程中指定了不正确的值,您可以在位于/data/gitea/conf/app.ini的主 gitea 配置文件中更改它们。

默认情况下,使用 SQLite 数据库,但如果需要,您可以选择并配置 MySQL 或 PostgresSQL。

gitea 创建管理员帐户

管理员帐户设置中,请务必指定管理员帐户的用户名和密码。

安装 Gitea 后,我们可以开始创建我们的第一个存储库。

如何使用gitea

gitea 创建存储库

要创建新存储库,请在菜单中选择“创建新存储库”,然后输入存储库名称和描述。

要使用 SSH 克隆存储库,您需要使用端口 2222 和命令

git clone ssh://<your_server_address>:2222/<username>/<repository_name>.git.

要在重新启动或删除容器时保留 gitea 数据,需要保存位于 ./data 文件夹中的数据。

就是这样!现在,您已将 Gitea 安装在您自己的服务器上的 Docker 容器中。

在 Docker 中更新 Gitea

注意

在升级 Gitea 之前,请务必对数据目录进行备份。

要更新,请转到 docker-compose 文件所在的目录并运行命令

sudo docker-compose pull
sudo docker-compose up -d

Ps: 若安装Gitea同时开启Gitea actions

修改配置docker-compose.yml,增加runner模块代码,完整代码如下

version: "3"

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    restart: always
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - TZ=Asia/Shanghai #全站添加时区
    volumes:
      - ./data:/data
      - ./custom:/app/gitea/custom
      - ./log:/app/gitea/log
    ports:
      - "3000:3000"
      - "2222:22"

#以下是增加同时开启act ruuner代码
  runner:
    image: gitea/act_runner:nightly
    container_name: act_runner
    restart: always
    volumes:
      - ./data/act_runner:/data
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - GITEA_INSTANCE_URL=http://192.168.2.160:3000
      - GITEA_RUNNER_REGISTRATION_TOKEN=“your token写在这里”

以上代码是一个Docker Compose配置文件的一部分,用于定义一个名为 “runner” 的服务。这个服务使用了 “gitea/act_runner:nightly” 镜像,并设置了容器名称、重启策略、挂载卷和环境变量。

  • image: gitea/act_runner:nightly:指定了使用的镜像为 “gitea/act_runner:nightly”。
  • container_name: act_runner:设置了容器的名称为 “act_runner”。
  • restart: always:配置了容器总是在退出时重启。
  • volumes:定义了需要挂载的卷,将本地的 “./data/act_runner” 目录挂载到容器的 “/data” 目录,并将宿主机的 “/var/run/docker.sock” 文件挂载到容器的 “/var/run/docker.sock” 文件。
  • environment:设置了环境变量,包括 “GITEA_INSTANCE_URL” 和 “GITEA_RUNNER_REGISTRATION_TOKEN”。

这段配置的作用是启动一个名为 “runner” 的服务,使用 “gitea/act_runner:nightly” 镜像,并配置了相关的容器设置和环境变量。