查看“︁Ubuntu使用docker安装gitea”︁的源代码
←
Ubuntu使用docker安装gitea
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:*、
用户
您可以查看和复制此页面的源代码。
=安装docker= ==推荐使用官方apt仓库安装== 这是官方推荐的标准方法,步骤稍多但最可靠。 ===1. 安装依赖=== 首先,更新软件包索引并安装必要的软件包,以便apt能通过HTTPS使用仓库。 <source lang="bash"> bash sudo apt update sudo apt install ca-certificates curl gnupg </source> ===2. 添加Docker官方GPG密钥=== 这一步是为了验证下载软件包的真实性,防止恶意篡改。 <source lang="bash"> 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 </source> ===3. 设置Docker稳定版仓库=== 将Docker的官方软件源添加到系统中,系统会自动识别你的Ubuntu版本。 <source lang="bash"> 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 </source> ===4. 安装Docker Engine=== 更新软件包索引并安装Docker及其核心组件。推荐安装包含最新插件(如docker-compose插件)的完整版。 <source lang="bash"> bash sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin </source> ==二、docker配置与验证== ===1. 启动并设置开机自启=== <source lang="bash"> bash sudo systemctl enable --now docker </source> 此命令会立即启动Docker服务,并设置其在系统启动时自动运行。 ===2. 验证安装是否成功=== 运行一个简单的测试容器,如果看到成功消息,说明Docker已正确安装。 <source lang="bash"> bash sudo docker run hello-world </source> ===3. (可选)允许普通用户运行Docker命令=== 默认情况下,docker命令需要使用sudo。为避免每次输入密码,可以将当前用户添加到docker用户组。 <source lang="bash"> bash sudo usermod -aG docker $USER # 刷新组权限(或者注销重新登录) newgrp docker </source> 执行此命令后,需要注销并重新登录,或运行newgrp docker命令,组权限才会生效。 ===4. (可选)配置国内镜像加速器=== 如果拉取Docker镜像速度缓慢,可以配置国内的镜像加速器。创建或编辑Docker配置文件: <source lang="bash"> 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 </source> =安装gitea= == 一、准备工作 == === 1. 确保Docker和Docker Compose已安装 === 检查Docker是否已安装 <source lang="bash"> docker --version docker compose version </source> 如果未安装,可以参考之前的教程先安装Docker。 === 2. 创建Gitea工作目录 === 创建一个干净的目录,所有Gitea相关文件都会放在这里 <source lang="bash"> mkdir -p ~/gitea/{data,config} cd ~/gitea </source> 这个 ~/gitea 目录就是未来迁移时需要整体打包的目录。 == 二、创建docker-compose.yml == 使用以下命令创建配置文件: <source lang="bash"> bash nano docker-compose.yml </source> 粘贴以下内容: <source lang="bash"> 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冲突) </source> 如果需要配置Action,追加以下内容: <source lang="bash"> # 新增 Runner 服务 runner: image: gitea/act_runner:latest container_name: gitea-runner restart: unless-stopped environment: # 注意:这里不能用 localhost,要用宿主机IP或直接使用https://你的域名 - GITEA_INSTANCE_URL=http://宿主机IP:3000 - GITEA_RUNNER_REGISTRATION_TOKEN=你的注册令牌 # 可选:设置 Runner 名称 - GITEA_RUNNER_NAME=docker-runner # 可选:设置 Runner 标签 - GITEA_RUNNER_LABELS=docker,ubuntu-latest volumes: # 关键:挂载 Docker 套接字,让 Runner 能创建容器执行任务 - /var/run/docker.sock:/var/run/docker.sock # 持久化 Runner 配置 - ./runner_data:/data </source> 关于用户设置的说明: 这里的 USER_UID=1000 和 USER_GID=1000 是指定容器内部运行Gitea进程的用户ID 不需要在宿主机上手动创建 git 系统用户 1000 通常是Ubuntu第一个普通用户的UID,如果你当前的普通用户UID不是1000,可以用 id -u 查看后替换 == 三、启动Gitea == <source lang="bash"> bash # 启动服务(后台运行) docker compose up -d # 重启gitea docker restart gitea docker-compose restart gitea #docker-compose部署 # 查看运行状态 docker compose ps # 重新读取配置文件,并让 Docker 重启生效 sudo systemctl daemon-reload sudo systemctl restart docker # 查看日志(如有问题) docker compose logs </source> == 四、Web界面初始化 == 打开浏览器访问:http://你的服务器IP:3000 首次访问会进入安装页面: <pre> 数据库设置:保持默认的 SQLite3(最简单,无需额外数据库容器) 站点标题:填写你的站点名称 基础URL:填写 http://你的服务器IP:3000(如有域名则填域名) </pre> 创建管理员账户: <pre> 滚动到页面下方,展开「可选设置」→「管理员账户设置」 填写用户名、邮箱、密码 点击「安装Gitea」完成 </pre> == 五、配置SSH访问(推荐) == 如果你希望通过SSH协议推送代码(而不是HTTPS),需要进行额外配置。 === 方法一:使用容器SSH端口(推荐) === 在Gitea的Web界面中: <pre> 登录管理员账户 进入「站点管理」→「配置」 找到 SSH 配置: SSH 服务器域名:填写你的服务器IP或域名 SSH 端口:填写 2222(因为我们在docker-compose.yml中映射的是2222) </pre> 用户在克隆仓库时会看到:ssh://git@服务器IP:2222/用户名/仓库名.git 🎯注意:一旦通过 SSH_PORT 指定了一个非 22 的端口,Gitea 就无法再“借用”外部默认的 SSH 服务了,START_SSH_SERVER = true 就成了启动内置服务的“强制要求”。 官方 Helm Charts 对此有一段权威的解释: ''"For rootful Gitea images, the built-in OpenSSH server is reused, and Gitea itself does not listen on any SSH port. Therefore, the SSH_LISTEN_PORT setting has no effect. Explicitly setting START_SSH_SERVER helps avoid confusion and makes the behavior clearer."'' ''简单翻译:对于在 root 用户下运行的 Gitea 容器(最常见的情况),它会默认复用宿主机的 SSH 服务 (openssh-server)。此时,Gitea 程序本身不监听任何端口,SSH_LISTEN_PORT 设置也完全无效。所以,即使你不写 START_SSH_SERVER = true,它也不启动内置服务。'' 这就是为什么,通常在默认端口 22 下,即使不显式设置,SSH 也能“用”(实际上是复用宿主机的服务)。很多配置文章里提到“必须设置为 true”,其实恰恰就是因为它们都在修改默认的 SSH 端口。 === 方法二:使用宿主机SSH(高级,暂不推荐) === 此方式需要配置宿主机的SSH服务转发到Docker容器,过程较复杂,建议先用方法一。 == 六、目录结构说明 == <pre> ~/gitea/ ├── docker-compose.yml # 配置文件(迁移时复制) ├── data/ # 核心数据:仓库、附件、头像等(迁移时复制) └── config/ # Gitea配置文件 app.ini(迁移时复制) </pre> == 七、未来迁移步骤(尚未验证) == 迁移时只需要打包整个 ~/gitea 目录,在新服务器上解压后执行 docker compose up -d 即可。 当你需要更换服务器时: <source lang="bash"> 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 </source> 整个过程只需要等待镜像拉取和容器启动,数据和配置完整保留。 == 八、更改域名 == 除了更dns和ngnix配置外,需修改gitea配置 /data/gitea/conf/app.ini并重启: <source lang="xml"> [server] DOMAIN = git.your-new-domain.com SSH_DOMAIN = git.your-new-domain.com ROOT_URL = https://git.your-new-domain.com/ </source>
返回
Ubuntu使用docker安装gitea
。
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
设置
查看历史
更多
搜索
导航
首页
Ubuntu
Android
C&CPP
Java
Python
AI
大杂烩
最近更改
工具
所有页面
文件列表
页面信息
特殊页面