使用docker创建gitlab仓库

安装依赖

sql 复制代码
sudo apt update
sudo apt install -y ca-certificates curl gnupg

添加 Docker 官方 GPG 密钥

bash 复制代码
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

添加docker仓库

bash 复制代码
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装docker

lua 复制代码
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

验证安装

最小测试镜像(官方用于验证 Docker 安装的测试镜像)

arduino 复制代码
sudo docker run hello-world

创建持久化数据目录

bash 复制代码
sudo mkdir -p /srv/gitlab/config /srv/gitlab/logs /srv/gitlab/data

运行 GitLab 容器

bash 复制代码
sudo docker run --detach \
  --hostname 198.46.254.158 \       # 替换为你的域名或IP
  --publish 443:443 --publish 80:80 --publish 2222:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

查看对应22 80 443 端口是否被其他服务占用,对应进行调整

css 复制代码
sudo lsof -i :80
sudo lsof -i :443
sudo lsof -i :22

配置 GitLab SSH 端口

容器启动后,你还需要配置 GitLab 使用宿主机映射的 SSH 端口(2222)。可以通过修改 GitLab 的配置文件来实现。

首先,进入 GitLab 配置文件所在目录

arduino 复制代码
sudo nano /srv/gitlab/config/gitlab.rb

在文件中找到或添加以下配置:

css 复制代码
gitlab_rails['gitlab_shell_ssh_port'] = 2222

这行配置告诉 GitLab 使用 2222 端口进行 SSH 连接

以上为命令行修改,需要 vim

也可以使用 1panel 可视化图形界面操作

重新配置并重启 GitLab

保存并退出配置文件后,重新配置并重启 GitLab 容器,使配置生效

bash 复制代码
sudo docker exec -it gitlab gitlab-ctl reconfigure
sudo docker restart gitlab

打开 对应IP地址的 8080端口访问

GitLab 首次启动时需要初始化数据库、配置服务等,这个过程可能需要 5-15 分钟(取决于服务器性能)。如果在服务未完全启动时访问页面,就会出现 502 错误。页面会每 5 秒自动刷新,直到服务准备就绪。

去到挂载目录下的文件夹内找到初始化密码

账号为root管理员

登录成功

修改语言为中文

相关推荐
code_YuJun8 分钟前
corepack 作用
前端
千寻girling8 分钟前
Koa.js 教程 | 一份不可多得的 Node.js 的 Web 框架 Koa.js 教程
前端·后端·面试
全栈前端老曹10 分钟前
【MongoDB】Node.js 集成 —— Mongoose ORM、Schema 设计、Model 操作
前端·javascript·数据库·mongodb·node.js·nosql·全栈
code_YuJun11 分钟前
pnpm-workspace.yaml
前端
天才熊猫君13 分钟前
“破案”笔记:iframe动态加载内容后,打印功能为何失灵?
前端
五月君_30 分钟前
炸裂!Claude Opus 4.6 与 GPT-5.3 同日发布:前端人的“自动驾驶“时刻到了?
前端·gpt
Mr Xu_35 分钟前
前端开发中CSS代码的优化与复用:从公共样式提取到CSS变量的最佳实践
前端·css
春日见1 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
xuhe21 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
鹏北海-RemHusband1 小时前
从零到一:基于 micro-app 的企业级微前端模板完整实现指南
前端·微服务·架构