使用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管理员

登录成功

修改语言为中文

相关推荐
PedroQue991 小时前
Vite插件v0.2.6:架构优化与自动化升级
前端·vite
threerocks2 小时前
什么?我连 A2A、MCP 都没学会,现在又来了 AG-UI、A2UI.
前端·aigc·ai编程
牛奶3 小时前
如何自己写一个浏览器插件?
前端·chrome·浏览器
亿元程序员3 小时前
为什么Cocos都4.0了还有人用2.x?
前端
MomentYY4 小时前
AI 到底是“懂”,还是在“猜”?
前端·人工智能·ai编程
鹏毓网络科技4 小时前
Cursor Rules 文件配置实战:3 个隐藏参数让我每月少写 40% 样板代码
前端·github
没烦恼3014 小时前
无痕模式下 HTTP\-First 拦截引发的“页面刷新”误判
前端
文心快码BaiduComate4 小时前
从个人提效到组织提效:Comate辅助构建自我进化的AI研发系统
前端·程序员
hunterandroid4 小时前
Compose 状态管理:remember、rememberSaveable 与状态提升
前端
星栈5 小时前
Dioxus 接数据库最容易写歪的 3 个地方:sqlx + SQLite 怎么接才顺
前端·rust·前端框架