在 Docker 容器中安装和配置 Gitea
什么是 Gitea?
Gitea 是一个免费开源的 Git 存储库管理系统,可以在 Docker 容器中轻松安装和运行。Gitea 提供了一个方便的 Web 应用程序界面,用于管理 Git 存储库及其开发的各个方面。Gitea 既可以在本地使用,也可以在云模式下使用。
为什么在 Docker 容器中使用 Gitea?
Docker 容器允许将应用程序与主机操作系统及其依赖项隔离。这使得 Gitea 可以方便地在任何平台和任何环境中安装、配置和使用。Docker 容器还提供可扩展性、简化依赖关系管理并实现更安全的部署和操作。
要在 Docker 中安装 Gitea,您的服务器上必须已安装 Docker 和 docker-compose。有关如何安装Docker + docker-compose + Portaine r 的更多信息,可以阅读这篇文章。
创建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” 镜像,并配置了相关的容器设置和环境变量。