外观
安装
约 1085 字大约 4 分钟
2025-08-31
官方推荐使用Docker Compose
安装,本教程也基于此进行。其他安装细节可以查阅官方文档:
环境要求
- 您必须有一个正常工作的
Docker
安装,而不是Docker for Windows
。由于已知的兼容性问题,Docker for Windows
未被官方支持,特别是在卷权限方面以及可能的其他未知问题。 - 您必须为您的
Docker
安装拥有一个有效的、外部可访问的主机名。不要使用localhost
。 - 个人使用情况下,
CPU
要求不高,内存笔者测试下来,Docker
部署情况下4GB
足够运行,实际消耗3.88GB
。如需用户量大或请求频率高,可参考官方的配置要求:GitLab installation requirements|极狐 GitLab 安装要求
创建项目工作目录
在一个合适的位置创建一个目录用于存放gitlab
项目的数据,如:
mkdir /opt/gitlab
创建docker-compose.yaml
在项目根目录下创建docker-compose.yaml
文件,内容如下
docker-compose.yaml
services:
gitlab:
image: gitlab/gitlab-ce:18.2.1-ce.0 # 使用社区版本,并固定镜像版本,防止版本差异
container_name: gitlab # 容器名称
restart: always # 重启策略,总是重启
hostname: "your_hostname" # 替换为你的域名或IP
environment:
GITLAB_OMNIBUS_CONFIG: |
# 禁用所有SSH相关功能
gitlab_rails['gitlab_shell_enabled'] = false
nginx['listen_port'] = 80
nginx['redirect_http_to_https'] = false # 不强制HTTPS
# 使用内置数据库(默认配置)
postgresql['enable'] = true
redis['enable'] = true
# 启用lfs
gitlab_rails['lfs_enabled'] = true
# 禁用非必要服务
prometheus['enable'] = false # 禁用 Prometheus 数据采集
mattermost['enable'] = false # 禁用内置的 Mattermost 聊天服务
# 显式声明仅HTTP
external_url 'http://your_hostname' # 替换为你的域名或IP
ports:
- "8088:80" # 仅开放HTTP端口
volumes:
- ./gitlab/config:/etc/gitlab # 配置文件
- ./gitlab/logs:/var/log/gitlab # 日志
- ./gitlab/data:/var/opt/gitlab # 应用数据
shm_size: "256m"
deploy:
resources:
limits:
cpus: "2.0" # 限制最大使用2核CPU
memory: 8G # 限制最大内存8GB
reservations:
memory: 4G # 保证至少4G内存可用
启动GitLab
由于我们使用了volumes
挂载主机的目录,MacOS
上需要在Docker for Mac
客户端上添加目录权限。设置路径为Settings->Resources->File Sharing
,在Virtual file shares
中添加你的项目根目录。
确保项目目录权限后,在项目根目录下运行以下命令启动GitLab
容器:
% docker-compose up -d
[+] Running 2/2
✔ Network gitlab_default Created 0.0s
✔ Container gitlab Started 0.1s
初次启动后,容器内部初始化耗时较长,大概 4-5 分钟,耐心等待。
初始化过程中,依据我们配置的目录挂载规则,会在根目录创建gitlab
目录,用于存放GitLab
持久化的数据。
待完全启动成功后,可在目标主机上访问http://localhost:8088或http://your_hostname:8088访问GitLab
站点,界面如下:
管理员登录与密码重置
管理员登录
管理员账号为root
,首次启动后,系统会自动生成初始密码。
初始密码在容器中的位置为/etc/gitlab/initial_root_password
,依据我们的映射规则,在主机上的位置就为./gitlab/config/initial_root_password
,查看该文件内容,找到Password
部分:
% cat ./gitlab/config/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: 4lo+KEwwzToPCYQaTDMkAdznyWNB+rQAD89j+M5qaso=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
回到浏览器,访问项目地址,在登陆页面使用管理员账号及默认密码登录即可。
管理员密码重置
使用管理员账号及默认登陆后,在左下角找到管理员设置界面入口,点击进入管理员页面
在左侧的菜单中点击用户进入用户管理页面,并找到管理员账号,点击编辑按钮进入用户编辑页面
在密码部分设置新密码,上方也可以按需修改默认管理员的账号及其他信息,配置好后点击保存即可。保存后会退出登录,使用新账号及密码登录即可。