Docker 一键部署自托管 Gitea 仓库
💡
Gitea是一款完全开源且免费的Git仓库托管服务,它提供与GitHub和GitLab类似的功能。你可以自由地对其进行修改和分发,由于它的轻量级,即使在低功耗服务器上你也可以轻松运行。
界面预览
环境准备
- VPS一台 最低配置1核1G 带宽1M即可
- 服务器系统:本文演示的系统是ubuntu20.04(LTS)
- 域名一个
- 安装好Docker、Docker-compose、Nginx Proxy Manager
- SSH工具:FinalShell官网
部署过程
一、系统初始化,更新索引
#更新索引库
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端口形式访问。默认情况下是没有用户可供登录的,首个注册用户就是管理员账号