Ubuntu 24.04 LTS 安装 gitlab
ubuntu 22.04 安装 gitlab
1. 前置条件
。已安装 Docker(建议 20.10 + 版本)和 Docker Compose(可选,用于简化配置)。
。服务器至少 4GB 内存(生产环境建议 8GB+,否则可能因内存不足启动失败)。
。开放必要端口:80(HTTP)、443(HTTPS)、22(SSH,若需通过 SSH 访问仓库)。
2. 安装 Docker(若未安装):
sudo apt update && sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER # 非root用户添加docker权限(需重启生效)
##换源
sudo mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors" : ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug": true,
"experimental": false
}
步骤 1:准备数据持久化目录
# 创建宿主机目录(可自定义路径,建议放在大磁盘下)
sudo mkdir -p /data/gitlab/{config,data,logs}
# 设置权限(避免容器内进程无权限读写,GitLab容器内默认用户ID为998)
sudo chmod -R 777 /data/gitlab # 简单粗暴(测试环境可用)
# 生产环境建议更精细:sudo chown -R 998:998 /data/gitlab
步骤 2:启动 GitLab 容器
方式 1:直接用docker run命令
一行命令启动,适合快速测试:
docker run --detach \
--hostname gitlab.example.com # 替换为你的域名或服务器IP(如192.168.1.100)\
--publish 80:80 \ # 宿主机80端口映射到容器80(HTTP)
--publish 443:443 \ # 宿主机443端口映射到容器443(HTTPS,若需)
--publish 2222:22 \ # 宿主机2222端口映射到容器22(SSH,避免与宿主机22冲突)
--name gitlab \ # 容器名称
--restart always \ # 开机自启
--volume /data/gitlab/config:/etc/gitlab \ # 配置文件挂载
--volume /data/gitlab/data:/var/opt/gitlab \ # 数据挂载
--volume /data/gitlab/logs:/var/log/gitlab \ # 日志挂载
gitlab/gitlab-ce:latest # 官方社区版镜像(latest为最新版,可指定版本如16.0.0-ce.0)
方式 2:用 Docker Compose(推荐,便于管理)
1.创建docker-compose.yml文件:
version: '3.8'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: gitlab.example.com # 替换为你的域名/IP
environment:
# 核心配置:外部访问URL(必须设置,否则页面跳转异常)
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com' # 替换为你的URL(http/https)
# 若需SSH访问,指定SSH端口(与宿主机映射的端口一致)
gitlab_rails['gitlab_shell_ssh_port'] = 2222
ports:
- "80:80" # HTTP
- "443:443" # HTTPS
- "2222:22" # SSH
volumes:
- /data/gitlab/config:/etc/gitlab
- /data/gitlab/data:/var/opt/gitlab
- /data/gitlab/logs:/var/log/gitlab
# 可选:限制资源(避免GitLab占用过多内存)
deploy:
resources:
limits:
cpus: '2'
memory: 8G
2.启动容器:
docker compose up -d # 后台启动
步骤 3:首次访问与配置
1.等待启动完成:
GitLab 启动较慢(首次需初始化数据库等),可通过日志查看进度:
docker logs -f gitlab # 实时查看日志,出现"gitlab Reconfigured!"即启动完成
2.访问 GitLab:
浏览器打开你设置的external_url(如http://192.168.1.100),首次访问会提示设置root用户的密码(需牢记)。
3.登录:
输入root用户名和刚才设置的密码,即可进入 GitLab 控制台。
关键配置说明
1.修改外部 URL:
若需修改访问地址,编辑/data/gitlab/config/gitlab.rb(宿主机目录):
sudo vim /data/gitlab/config/gitlab.rb
找到并修改:
external_url 'http://新的域名或IP'
gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 若SSH端口变更
然后进入容器执行重新配置:
docker exec -it gitlab gitlab-ctl reconfigure
2.配置 HTTPS:
需提前准备 SSL 证书(如server.crt和server.key),将证书放到宿主机/data/gitlab/config/ssl/目录,然后修改gitlab.rb:
external_url 'https://gitlab.example.com'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"
重新配置生效。
3.邮件通知:
编辑gitlab.rb配置 SMTP(以 QQ 邮箱为例):
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "你的QQ邮箱@qq.com"
gitlab_rails['smtp_password'] = "邮箱授权码" # 非登录密码,需在邮箱设置中获取
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "你的QQ邮箱@qq.com"
注意事项
1.端口冲突:若宿主机 80/443/22 端口已被占用,需修改映射端口(如-p 8080:80将宿主机 8080 映射到容器 80),同时更新external_url(如http://ip:8080)。
2.内存不足:若启动失败或频繁崩溃,检查内存是否≥4GB,可通过free -h查看,不足时建议增加内存或启用 Swap。
3.数据备份:直接备份宿主机/data/gitlab目录即可(tar -zcvf gitlab_backup.tar.gz /data/gitlab)。
4.版本更新:停止容器→删除容器→拉取新镜像→重新启动(数据目录不变则数据保留)。

浙公网安备 33010602011771号