Docker 一键部署自托管 Gitea 仓库

Docker 一键部署自托管 Gitea 仓库

💡
Gitea是一款完全开源且免费的Git仓库托管服务,它提供与GitHub和GitLab类似的功能。你可以自由地对其进行修改和分发,由于它的轻量级,即使在低功耗服务器上你也可以轻松运行。

界面预览

CSS Image Rollover Filter

环境准备


部署过程


一、系统初始化,更新索引

#更新索引库
sudo apt-get update

二、创建gitea容器

#切换到root用户
sudo -i

#在root目录下递归的创建一些文件夹,如果父目录不存在则先创建出来
mkdir -p /root/data/docker_workspace/gitea

#进入到gitea目录下
cd /root/data/docker_workspace/gitea

#创建一个docker-compose.yml配置文件
touch docker-compose.yml

#编辑该文件
vim docker-compose.yml

将下面代码复制到docker-compose.yml中保存即可(指定的端口事先要在服务器内部和云服务商后台开放)

version: "3"

networks:
  gitea:
    external: false  # 定义一个内部网络,不与外部网络连接

services:
  server:  # 定义 Gitea 服务
    image: gitea/gitea:1.22.1  # 使用 Gitea 1.22.1 镜像
    container_name: gitea  # 容器名称为 gitea
    environment:  # 环境变量配置
      - USER_UID=1000  # 用户 UID 为 1000
      - USER_GID=1000  # 用户 GID 为 1000
      - GITEA__database__DB_TYPE=mysql  # 数据库类型为 MySQL
      - GITEA__database__HOST=db:3306  # 数据库主机为 db,端口为 3306
      - GITEA__database__NAME=gitea  # 数据库名称为 gitea
      - GITEA__database__USER=gitea  # 数据库用户名为 gitea
      - GITEA__database__PASSWD=gitea  # 数据库密码为 gitea
    restart: always  # 容器总是重启
    networks:
      - gitea  # 使用名为 gitea 的网络
    volumes:  # 卷配置
      - ./gitea:/data  # 将主机的 ./gitea 目录挂载到容器的 /data 目录
      - /etc/timezone:/etc/timezone:ro  # 只读挂载主机的 /etc/timezone 文件
      - /etc/localtime:/etc/localtime:ro  # 只读挂载主机的 /etc/localtime 文件
    ports:
      - "9000:3000"  # 将主机的 9000 端口映射到容器的 3000 端口
      - "2222:22"  # 将主机的 2222 端口映射到容器的 22 端口
    depends_on:
      - db  # 该服务依赖于 db 服务

  db:  # 定义 MySQL 数据库服务
    image: mysql:8  # 使用 MySQL 8 镜像
    restart: always  # 容器总是重启
    environment:  # 环境变量配置
      - MYSQL_ROOT_PASSWORD=gitea  # MySQL root 用户的密码为 gitea
      - MYSQL_USER=gitea  # 创建 gitea 用户
      - MYSQL_PASSWORD=gitea  # gitea 用户的密码为 gitea
      - MYSQL_DATABASE=gitea  # 创建名为 gitea 的数据库
    networks:
      - gitea  # 使用名为 gitea 的网络
    volumes:
      - ./mysql:/var/lib/mysql  # 将主机的 ./mysql 目录挂载到容器的 /var/lib/mysql 目录
#拉取项目镜像并在后台启动容器
docker-compose up -d

三、Gitea初始化

打开浏览器,地址栏内输入服务器IP:9000端口形式访问。默认情况下是没有用户可供登录的,首个注册用户就是管理员账号

初始化-1
初始化-2
初始化-3

四、Gitea注册登录

注册页面
用户配置
后台管理