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

登录成功

修改语言为中文

相关推荐
coderYYY3 分钟前
多个el-form-item两列布局排齐且el-select/el-input组件宽度撑满
前端·javascript·vue.js·elementui·前端框架
亮11126 分钟前
GITLAB跑gradle项目 不借助maven-publish直接上传到nexus私人仓库
java·gitlab·gradle·maven
荔枝吖27 分钟前
项目中会出现的css样式
前端·css·html
Dontla31 分钟前
何时需要import css文件?怎么知道需要导入哪些css文件?为什么webpack不提示CSS导入?(导入css导入规则、css导入规范)
前端·css·webpack
小堃学编程1 小时前
前端学习(2)—— CSS详解与使用
前端·css·学习
蓝婷儿1 小时前
第一章:HTML基石·现实的骨架
前端·html
Watermelo6171 小时前
前端如何应对精确数字运算?用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性
开发语言·前端·javascript·vue.js·前端框架·vue·es6
HebyH_1 小时前
2025前端面试遇到的问题(vue+uniapp+js+css)
前端·javascript·vue.js·面试·uni-app
Clockwiseee1 小时前
CSRF记录
前端·csrf
深圳卢先生1 小时前
XSS 和 CSRF 有什么区别?Java Web 如何防御?
前端·xss·csrf