使用 Docker 安装 Gitea 的过程非常简单的,堪比“一键式”安装。Gitea 安装使用系列教程将会从多种方式进行全方位的实操演示。

视频演示中使用腾讯云实验环境安装 Docker 并快速启动 Gitea

环境准备

服务器配置

OS Version CPU RAM
Debian Linux bullseye 2 Core 4GB

本文所采用的服务器配置如下,建议内存最少在 1GB 以上。OS 版本可以是 Debian、Ubuntu、Fedora 以及 CentOS,本文优先使用 Debian,其他系统发行版的会在后续文章中酌情演示。

Docker 运行环境

最新的 Docker Engine 和 Docker Desktop 集成了 docker compose 命令行工具。更多信息请参阅:

选择镜像

Gitea 提供了标准的容器镜像(gitea/gitea),统一支持 SQLite、MySQL、PostgreSQL 和 SQL Server 作为数据库后端。每个版本的镜像同时支持两种主流的处理器体系结构 amd64arm64/v8

镜像标签

  • 最新的稳定版
    latest
  • 固定在某个稳定版
    1.17.2, 1.17, 1
  • 最新的开发版,随 Gitea 代码合并同步更新
    dev

Rootless 镜像

Rootless 镜像使用 Gitea 内建的 Go SSH 提供 Git 服务,代替了 OpenSSH。

在选用 rootless 镜像时,加上镜像标签 -rootless。支持的镜像标签如下:

  • latest-rootless, 1-rootless
  • 1.17.2-rootless
  • dev-rootless

安装 Gitea

环境变量

在集群模式安装 Gitea 时,您可以通过环境变量为 Gitea 容器指定一些共享的初始值,例如 UID/GID、数据库连接参数、共享密钥等。诸如数据库和 Gitea 的一些功能配置选项最终都会在安装引导界面结束后写入到 app.ini 文件并保存。因此,如果是作为单实例部署的 Gitea,您无需关心如何设置这些环境变量,稍后的初始化安装过程会为您自动生成这些配置。初始化完成后,您可以在多个 Gitea 实例间共享同一份配置文件和数据缓存来实现服务器集群。

阅读更多:https://docs.gitea.io/en-us/install-with-docker/

启动 Gitea

创建工作目录

首先创建一个 gitea 工作目录,后续工作都在这个目录下完成。

mkdir ~/gitea && cd ~/gitea

# 预先创建 data 和 config 目录,稍后用于数据挂载
mkdir data config
chown 1000:1000 data config

创建 docker-compose.yml

使用下面的模板创建 docker-compose.yml,这里使用到的镜像是 gitea/gitea:1.17.2-rootless

rooless 版本的镜像默认使用 UID/GID 1000:1000 作为程序运行的用户组,为了保证 gitea 程序挂载权限正确的数据目录,我们在前面的步骤中预先创建了 dataconfig 目录。

version: "3"

services:
server:
image: gitea/gitea:1.17.2-rootless
container_name: gitea
restart: always
volumes:
- ./data:/var/lib/gitea
- ./config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:2222"

几个重要的参数说明:

  • volumes: 数据挂载

    • ./data:/data,将主机当前目录下的 data 目录挂载到容器内的 /var/lib/gitea 目录。/data 是 Gitea 标准容器的数据存储点,包含了 Git 仓库、SQLite 数据库文件、缓存文件等。
    • ./config:/etc/gitea 挂载 Gitea 的 app.ini 配置文件所在的目录。
    • /etc/timezone:/etc/timezone:ro 用于指定时区
    • /etc/localtime:/etc/localtime:ro 同上,用于指定本地时间
  • ports: 端口映射
    • 3000:3000 HTTP 端口,从左到右的顺序是从主机映射到 Docker 容器。在此,您可以通过 http://127.0.0.1:3000 直接访问到 Gitea 的 Web 界面,或通过反向代理引擎提供更具有扩展性的 SSL 集成,例如 Nginx。
    • 2222:2222 SSH 端口。这里主机侧暴露的端口为 2222 避免了与默认 SSH 服务端口冲突。禁用 SSH 时删除端口转发即可。如果您希望将主机完全作为 Gitea 服务器,可以将主机配置文件 /etc/ssh/sshd_config 中的端口 Port 22 更改为其他值,使得 Docker 可以使用 Gitea 内建的 Go SSH 或 OpenSSH 占用 22 端口作为 Git 服务。

启动 Gitea 实例

使用 docker compose 命令拉取镜像并启动 Gitea 实例:

docker compose up -d

docker compose ps 查看容器:

NAME     COMMAND                   SERVICE    STATUS     PORTS
gitea "/usr/local/bin/dock…" server running 2222/tcp, 0.0.0.0:3000->3000/tcp

docker compose logs -f 查看容器日志:

$ docker compose logs -f
gitea | 2022/09/26 14:50:31 cmd/web.go:106:runWeb() [I] Starting Gitea on PID: 1
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/local/bin/gitea
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /var/lib/gitea
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /var/lib/gitea/custom
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /var/lib/gitea/data/log
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:25:PreloadSettings() [I] Configuration file: /etc/gitea/app.ini
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:26:PreloadSettings() [I] Prepare to run install page
gitea | 2022/09/26 14:50:31 ...s/install/setting.go:29:PreloadSettings() [I] SQLite3 is supported
gitea | 2022/09/26 14:50:31 cmd/web.go:217:listen() [I] [63314bb7-6] Listen: http://0.0.0.0:3000
gitea | 2022/09/26 14:50:31 cmd/web.go:221:listen() [I] [63314bb7-6] AppURL(ROOT_URL): http://localhost:3000/

当看到上述日志的时候可以认为实例已经启动了,在浏览器中输入 http://localhost:3000/ 即可登陆 Gitea 实例进行初始化设置。

登录 Gitea

首次安装 Gitea 后,在浏览器中输入 http://localhost:3000/ 访问初始化页面,按需设置服务器信息。第一个注册的用户账号为管理账号。

至此已经用 Docker 的方式来成功安装和运行了 Gitea 实例,接下来就可以使用了,诸如代码托管、团队人员管理、配置持续集成工具 DroneJenkins 等。

手把手教你玩转 Gitea|使用 Docker 安装 Gitea的更多相关文章

  1. 手把手教你玩转SOCKET模型之重叠I/O篇(下)

    四.     实现重叠模型的步骤 作 了这么多的准备工作,费了这么多的笔墨,我们终于可以开始着手编码了.其实慢慢的你就会明白,要想透析重叠结构的内部原理也许是要费点功夫,但是只是学会 如何来使用它,却 ...

  2. 转:变手把手教你玩转SOCKET模型之重叠I/O篇

    手把手教你玩转SOCKET模型之重叠I/O篇 “身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人.我也希望大家能把自己的所学和他人一起分享,不要去鄙 ...

  3. 手把手教你玩转 CSS3 3D 技术

    css3的3d起步 要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上的2D事物,从而展现3 ...

  4. 手把手教你玩转CSS3 3D技术

    手把手教你玩转 CSS3 3D 技术   要玩转css3的3d,就必须了解几个词汇,便是透视(perspective).旋转(rotate)和移动(translate).透视即是以现实的视角来看屏幕上 ...

  5. 知识全聚集 .Net Core 技术突破 | 我用C#手把手教你玩微信自动化一

    知识全聚集 .Net Core 技术突破 | 我用C#手把手教你玩微信自动化一 教程 01 | 模块化方案一 02 | 模块化方案二 03 | 简单说说工作单元 其他教程预览 分库分表项目实战教程 G ...

  6. C#:手把手教你用C#打包应用程序(安装程序卸载程序)

    摘要:本文介绍在C#中手把手教你用C#打包应用程序(安装程序卸载程序) 1:新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点 ...

  7. 手把手教你玩转 Gitea|使用 Helm 在 K3s 上安装 Gitea

    前言 在前面的文章中,演示了如何用 Docker 镜像和 Windows 二进制包来安装运行 Gitea.今天是玩转 Gitea 系列的使用 Helm 在 K3s 上安装 Gitea. 关于 Gite ...

  8. 手把手教你玩转 Gitea|在 Windows 系统上安装 Gitea

    Gitea 支持在 Windows 系统上安装和使用.Gitea 本身作为一个单体应用程序,即点即用,如需长期驻留作为后台服务并开机运行就要依靠 Windows 服务工具 sc.exe. 通过本文,你 ...

  9. 完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三

       手把手叫你玩转网络编程系列之三    完毕port(Completion Port)具体解释                                                    ...

随机推荐

  1. jenkins+tomcat自动化部署

    一.配置tomcat tomcat版本:tomcat-9.0.39 vim /usr/local/tomcat-9.0.39/conf/tomcat-users.xml <tomcat-user ...

  2. 中高级Java程序员,挑战20k+,知识点汇总(一),Java修饰符

    1 前言 工作久了就会发现,基础知识忘得差不多了.为了复习下基础的知识,同时为以后找工作做准备,这里简单总结一些常见的可能会被问到的问题. 2 自我介绍 自己根据实际情况发挥就行 3 Java SE ...

  3. Win10环境前后端分离项目基于Vue.js+Django+Python3实现微信(wechat)扫码支付流程(2021年最新攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_182 之前的一篇文章:mpvue1.0+python3.7+Django2.0.4实现微信小程序的支付功能,主要介绍了微信小程序内 ...

  4. Radmin自动登录器 v3.0

    Radmin自动登录器 v3.0 - By: ybmj@vip.163.com 20150615 用户手册 下载地址:https://download.csdn.net/download/shuren ...

  5. Dolphin Scheduler 1.2.0 部署参数分析

    本文章经授权转载 1 组件介绍 Apache Dolphin Scheduler是一个分布式易扩展的可视化DAG工作流任务调度系统.致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程 ...

  6. Luogu1868 饥饿的奶牛 (动态规划)

    开始以为是贪心,10分:想了个DP估计会超时,一翻题解各路初中神仙,背包都有. \(n^2\)很好想,考虑单调性用二分优化出log #include <iostream> #include ...

  7. 应用集成-在Hexo、Hugo博客框架中使用Gitalk基于Github上仓库项目的issue无后端服务评论系统实践

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 0x00 Gi ...

  8. 浅析websocket的基本应用spring boot + vue +C# + WPF

    1.基本概念 首先websocket是基于H5的一种通信.在网页中如果定时获取服务器端的实时数据,我们常采用long poll 和ajax轮询的方式.但是在轮询过程中,由于根本没有新数据的改变,而造成 ...

  9. Spring 16: SM(Spring + MyBatis) 注解式事务 与 声明式事务

    Spring事务处理方式 方式1:注解式事务 使用@Transactional注解完成事务控制,此注解可添加到类上,则对类中所有方法执行事务的设定,注解添加到方法上,则对该方法执行事务处理 @Tran ...

  10. OpenJudge1.5.17

    20:球弹跳高度的计算 总时间限制: 1000ms 内存限制: 65536kB 描述 一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下. 编程计算气球在第10次落地时,共经过 ...