GitLab 企业级本地部署,Docker-Compose快速入门
Docker Compose 部署 Gitlab
为什么要用docker-compose部署企业级的仓库?
使用 Docker Compose 部署企业 GitLab 具有以下几个好处:

简化部署流程:
Docker Compose 允许用户通过 YAML 文件定义和管理应用程序的服务,使得部署 GitLab 的过程更加简单和直观。只需编写一个配置文件,即可一键启动所有相关服务。
环境一致性:
使用 Docker 容器,您可以确保在不同环境(开发、测试、生产)中运行的 GitLab 实例保持一致。这有助于避免因环境差异导致的问题。
易于扩展和管理:
Docker Compose 支持多容器应用的编排,可以轻松扩展 GitLab 的服务,例如增添数据库、Redis 等组件,只需在配置文件中进行相应的修改即可。
版本控制:
Docker Compose 的配置文件可以使用版本控制系统(如 Git)进行管理,方便跟踪和回滚配置的更改。
便捷的升级和维护:
通过修改 Docker Compose 文件中的镜像版本,可以轻松地升级 GitLab。执行
docker-compose up命令后,系统会自动拉取新的镜像并重启服务,简化了维护工作。隔离性:
Docker 容器提供了良好的隔离性,可以避免不同服务间的冲突和依赖问题。每个服务都在自己的容器中运行,互不干扰。
资源管理:
Docker 提供的资源限制功能,可以帮助您更好地管理和分配服务器资源,确保 GitLab 不会过度消耗系统资源。
数据持久化,方便备份和恢复:
通过 Docker 卷和持久化数据,可以方便地备份和恢复 GitLab 的数据,确保数据安全。
快速部署
- 安装docker 和 docker-compose:
apt install docker.io -y
apt install docker-compose -y
- 拉取所需镜像:
docker pull postgres:17
docker pull gitlab/gitlab-ee:latest
- 创建gitlab yaml配置文件:
services:
postgres:
image: postgres:17
restart: always
environment:
POSTGRES_DB: gitlabhq_production
POSTGRES_USER: gitlab
POSTGRES_PASSWORD: 123 # 自定义数据库密码
volumes:
- ./postgres-data:/var/lib/postgresql/data
gitlab:
image: gitlab/gitlab-ee:latest
restart: always
hostname: 'gitlab.example.com' # 如果需要使用域名访问,改成自己的域名,把dns解析到服务器上,gitlab集成了let's的自动证书签发,可使用https访问
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.obsbot.com'
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'unicode'
gitlab_rails['db_database'] = 'gitlabhq_production'
gitlab_rails['db_username'] = 'gitlab'
gitlab_rails['db_password'] = '123' # 和上面数据库密码一样
gitlab_rails['db_host'] = 'postgres'
gitlab_rails['db_port'] = '5432'
ports:
- '80:80' # HTTP
- '443:443' # HTTPS
- '2222:22' # SSH
volumes:
- ./gitlab-config:/etc/gitlab
- ./gitlab-logs:/var/log/gitlab
- ./gitlab-data:/var/opt/gitlab
volumes:
postgres-data:
gitlab-config:
gitlab-logs:
gitlab-data:
- 启动服务:
docker-compose up -d
- 查看服务是否正常运行:
docker-compose ps

- 使用域名访问,并查看是否签发了ssl证书:

