Ubuntu使用docker安装gitea:修订间差异

来自个人维基
跳转到导航 跳转到搜索
Hovercool留言 | 贡献
无编辑摘要
Hovercool留言 | 贡献
无编辑摘要
第230行: 第230行:
</pre>
</pre>


=== 七、未来迁移步骤(尚未验证) ===
== 七、未来迁移步骤(尚未验证) ==
迁移时只需要打包整个 ~/gitea 目录,在新服务器上解压后执行 docker compose up -d 即可。
迁移时只需要打包整个 ~/gitea 目录,在新服务器上解压后执行 docker compose up -d 即可。
当你需要更换服务器时:
当你需要更换服务器时:

2026年5月18日 (一) 15:57的版本

安装docker

推荐使用官方apt仓库安装

这是官方推荐的标准方法,步骤稍多但最可靠。

1. 安装依赖

首先,更新软件包索引并安装必要的软件包,以便apt能通过HTTPS使用仓库。

bash

sudo apt update
sudo apt install ca-certificates curl gnupg

2. 添加Docker官方GPG密钥

这一步是为了验证下载软件包的真实性,防止恶意篡改。

bash

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

3. 设置Docker稳定版仓库

将Docker的官方软件源添加到系统中,系统会自动识别你的Ubuntu版本。

bash

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. 安装Docker Engine

更新软件包索引并安装Docker及其核心组件。推荐安装包含最新插件(如docker-compose插件)的完整版。

bash

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

二、docker配置与验证

1. 启动并设置开机自启

bash

sudo systemctl enable --now docker

此命令会立即启动Docker服务,并设置其在系统启动时自动运行。

2. 验证安装是否成功

运行一个简单的测试容器,如果看到成功消息,说明Docker已正确安装。

bash

sudo docker run hello-world

3. (可选)允许普通用户运行Docker命令

默认情况下,docker命令需要使用sudo。为避免每次输入密码,可以将当前用户添加到docker用户组。

bash

sudo usermod -aG docker $USER

# 刷新组权限(或者注销重新登录)
newgrp docker

执行此命令后,需要注销并重新登录,或运行newgrp docker命令,组权限才会生效。

4. (可选)配置国内镜像加速器

如果拉取Docker镜像速度缓慢,可以配置国内的镜像加速器。创建或编辑Docker配置文件:

bash

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.1ms.run", "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装gitea

一、准备工作

1. 确保Docker和Docker Compose已安装

检查Docker是否已安装

docker --version
docker compose version

如果未安装,可以参考之前的教程先安装Docker。

2. 创建Gitea工作目录

创建一个干净的目录,所有Gitea相关文件都会放在这里

mkdir -p ~/gitea/{data,config}
cd ~/gitea

这个 ~/gitea 目录就是未来迁移时需要整体打包的目录。

二、创建docker-compose.yml

使用以下命令创建配置文件:

bash

nano docker-compose.yml

粘贴以下内容:

services:
  server:
    # 使用官方稳定镜像
    image: gitea/gitea:latest
    container_name: gitea
    restart: unless-stopped
    environment:
      # 容器内运行用户的UID/GID,默认1000即可,无需手动创建系统用户
      - USER_UID=1000
      - USER_GID=1000
    volumes:
      # 数据持久化:所有仓库、配置、数据库都挂载到本地目录
      - ./data:/data
      - ./config:/etc/gitea
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"   # Web访问端口
      - "2222:22"     # SSH访问端口(映射到2222,避免与主机SSH冲突)

关于用户设置的说明:

   这里的 USER_UID=1000 和 USER_GID=1000 是指定容器内部运行Gitea进程的用户ID
   不需要在宿主机上手动创建 git 系统用户
   1000 通常是Ubuntu第一个普通用户的UID,如果你当前的普通用户UID不是1000,可以用 id -u 查看后替换

三、启动Gitea

bash

# 启动服务(后台运行)
docker compose up -d

# 查看运行状态
docker compose ps

# 查看日志(如有问题)
docker compose logs

四、Web界面初始化

打开浏览器访问:http://你的服务器IP:3000

首次访问会进入安装页面:

        数据库设置:保持默认的 SQLite3(最简单,无需额外数据库容器)
        站点标题:填写你的站点名称
        基础URL:填写 http://你的服务器IP:3000(如有域名则填域名)

创建管理员账户:

        滚动到页面下方,展开「可选设置」→「管理员账户设置」
        填写用户名、邮箱、密码
        点击「安装Gitea」完成

五、配置SSH访问(推荐)

如果你希望通过SSH协议推送代码(而不是HTTPS),需要进行额外配置。

方法一:使用容器SSH端口(推荐)

在Gitea的Web界面中:

登录管理员账户
    进入「站点管理」→「配置」
    找到 SSH 配置:
        SSH 服务器域名:填写你的服务器IP或域名
        SSH 端口:填写 2222(因为我们在docker-compose.yml中映射的是2222)

用户在克隆仓库时会看到:ssh://git@服务器IP:2222/用户名/仓库名.git

方法二:使用宿主机SSH(高级,暂不推荐)

此方式需要配置宿主机的SSH服务转发到Docker容器,过程较复杂,建议先用方法一。

六、目录结构说明

~/gitea/
├── docker-compose.yml   # 配置文件(迁移时复制)
├── data/                # 核心数据:仓库、附件、头像等(迁移时复制)
└── config/              # Gitea配置文件 app.ini(迁移时复制)

七、未来迁移步骤(尚未验证)

迁移时只需要打包整个 ~/gitea 目录,在新服务器上解压后执行 docker compose up -d 即可。
当你需要更换服务器时:

bash

# 1. 在旧服务器上打包
tar -czf gitea-backup.tar.gz ~/gitea/

# 2. 传到新服务器
scp gitea-backup.tar.gz 用户名@新服务器IP:~

# 3. 在新服务器上(已安装Docker)
tar -xzf gitea-backup.tar.gz
cd ~/gitea
docker compose up -d

整个过程只需要等待镜像拉取和容器启动,数据和配置完整保留。