在当今的软件开发环境中,一个私有的代码托管平台对于团队协作和个人项目管理都至关重要。Gitea 是一个轻量级的代码托管解决方案,类似于 GitHub 和 GitLab,但更加轻便且资源占用低。本文将详细介绍如何使用 Docker 快速部署 Gitea 服务。
首先确保你的系统已经安装了 Docker 和 Docker Compose。如果没有安装,可以参考官方文档进行安装。
在项目目录中创建一个 docker-compose.yml 文件,内容如下:
version: "3"
networks:
gitea:
external: false
services:
server:
image: docker.gitea.com/gitea:1.23.7
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
运行以下命令启动 Gitea 服务:
docker-compose up -d
等待容器启动后,你就可以通过 http://服务器IP:3000 访问 Gitea 的安装界面了。
如果你想使用不同的端口,可以修改 docker-compose.yml 文件中的端口映射部分:
ports:
- "8080:3000" # 将主机的8080端口映射到容器的3000端口
- "2221:22" # 将主机的2221端口映射到容器的22端口
默认配置使用 SQLite,适合小型部署。对于生产环境,建议使用 MySQL 或 PostgreSQL。
version: "3"
networks:
gitea:
external: false
services:
server:
image: docker.gitea.com/gitea:1.23.7
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: docker.io/library/mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
- ./mysql:/var/lib/mysql
为了更好的数据管理,可以使用命名卷替代主机卷:
version: "3"
networks:
gitea:
external: false
volumes:
gitea:
driver: local
services:
server:
image: docker.gitea.com/gitea:1.23.7
container_name: gitea
restart: always
networks:
- gitea
volumes:
- gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
访问 http://服务器IP:3000 完成安装向导。如果使用了数据库容器,注意将数据库主机地址设置为 db(容器服务名)。
Gitea 支持通过环境变量配置各种参数,例如:
environment:
- GITEA__mailer__ENABLED=true
- GITEA__mailer__FROM=git@example.com
- GITEA__mailer__PROTOCOL=smtps
- GITEA__mailer__HOST=smtp.example.com
- GITEA__mailer__USER=apikey
- GITEA__mailer__PASSWD=yourpassword
升级 Gitea 非常简单:
docker-compose.yml 中的镜像版本docker-compose pulldocker-compose up -d为了更好的 SSH 支持,可以配置 SSH 直通:
详细步骤可以参考文章中的 SSH 容器直通部分。
通过 Docker 部署 Gitea 是一个简单高效的方式,无论是个人使用还是团队协作,都能快速搭建起一个功能完善的代码托管平台。本文介绍了从基础部署到高级配置的多种方式,希望能帮助你顺利搭建自己的 Gitea 服务。
如果你在部署过程中遇到任何问题,欢迎在评论区留言讨论!