应选用 gitlab/gitlab-ee:16.11.5 或清华源 ghcr.io/gitlab-org/gitlab-ee:16.11.5,禁用已弃用的 gitlab/gitlab-ce;必须挂载 /etc/gitlab、/var/log/gitlab、/var/opt/gitlab 三个目录并正确设置权限;启动前须配置 gitlab.rb 中 external_url、ssh 端口、nginx 端口等关键项。

GitLab 镜像该选哪个官方源?别用 gitlab/gitlab-ce 了
宝塔 Docker 管理器里搜 gitlab,默认排第一的常是已弃用的 gitlab/gitlab-ce(2021 年起官方不再维护该镜像名)。现在必须用 gitlab/gitlab-ce:latest 已失效,实际应拉取 registry.gitlab.com/gitlab-org/gitlab-ce:latest ——但更稳妥的是直接用官方推荐的 gitlab/gitlab-ee(社区版也走这个路径)或镜像站加速版。
实操建议:
- 在宝塔「Docker 管理器 → 镜像管理 → 拉取镜像」中,输入完整镜像地址:
gitlab/gitlab-ee:16.11.5(选带具体小版本号的,避免:latest引发意外升级) - 国内用户可换清华源加速:
ghcr.io/gitlab-org/gitlab-ee:16.11.5(GitHub Container Registry 国内解析更稳) - 不建议用第三方打包镜像(如
sameersbn/gitlab),其配置逻辑与官方差异大,后续升级和备份路径易出错
持久化目录必须映射哪几个?漏一个就启动失败
GitLab 容器启动后若立刻退出,docker logs gitlab 常见报错是 Permission denied while trying to connect to the Docker daemon socket 或 Failed to connect to Redis ——本质是目录权限或挂载缺失。官方要求必须映射三个核心路径:
-
/etc/gitlab:存gitlab.rb配置,必须宿主机目录且属主为root(宝塔新建目录后需手动chown root:root /www/wwwroot/gitlab-config) -
/var/log/gitlab:日志输出,建议独立挂载,否则容器重启后日志丢失 -
/var/opt/gitlab:代码仓库、数据库、Redis 数据全在这里,**绝对不能用默认容器内路径**;宿主机目录需预留至少 20GB 空间,且属主设为git(chown -R git:git /www/wwwroot/gitlab-data)
宝塔界面填挂载时,「容器路径」填左边,「映射路径」填右边,类型选「目录」——别手误选成「文件」。
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
启动容器前必须改哪些配置?光靠环境变量不够
GitLab 不是设几个 -e 就能跑起来的。必须进 /etc/gitlab 挂载目录,编辑 gitlab.rb,否则会出现:网页打不开、注册邮件发不出、SSH 克隆失败等问题。
关键几行必须改(用宝塔文件管理器直接编辑):
-
external_url 'https://gitlab.yourdomain.com':必须写完整协议 + 域名,HTTP 会强制跳转 HTTPS,没配证书就先写http:// -
gitlab_rails['gitlab_shell_ssh_port'] = 2222:宝塔默认占了 22 端口,这里必须改,然后在宝塔「安全」里放行 2222 -
nginx['listen_port'] = 8080:如果宝塔 Nginx 已占 80,这里就得换,同时容器端口映射也要同步改成8080:8080 -
postgresql['enable'] = true和redis['enable'] = true:确保内置服务开启(默认是 true,但检查下保险)
容器启动后访问 502 或空白页?重点查这三处
容器状态显示“运行中”,但浏览器打开只有 502 或白屏,不是网络问题,而是 GitLab 内部服务没真正就绪。等 3–5 分钟再刷,仍不行就按顺序排查:
- 看
docker logs -f gitlab最后 20 行:出现gitlab Reconfigured!才算初始化完成;若卡在Running handlers:或反复报ruby_block[check if postgresql is running],说明/var/opt/gitlab目录权限不对 - 进容器执行
gitlab-ctl status(宝塔终端连上容器):看sidekiq、unicorn、postgresql是否都是run;若postgresql是down,大概率是/var/opt/gitlab/postgresql/data下有残留旧文件,删掉再重启容器 - 检查宝塔「网站」里是否误加了反向代理规则:GitLab 自带 Nginx,不需要额外建站点反代;如有,立即删除,否则请求被宝塔 Nginx 截胡导致 502
GitLab 初始化耗时长、依赖严、目录权限敏感,第一次启动务必留足 10 分钟观察日志,别看到容器 running 就以为完事了。










