本地Docker部署GitLab的克隆URL相关问题咨询
本地Docker部署GitLab的克隆URL相关问题咨询
嗨,我来帮你梳理并解决这个Docker部署GitLab遇到的克隆URL问题~
为什么会生成http://84fdf6ccc7dc/test/testproject.git这种克隆URL?
这是因为你启动GitLab容器时,没有指定外部访问的URL配置,GitLab会默认使用容器的短ID(也就是84fdf6ccc7dc)作为外部地址的主机名,所以生成的克隆URL会用这个容器ID来代替实际的宿主机IP。
两种解决方案供你选择
方案一:使用现有URL克隆并完成认证
你可以直接用这个带容器ID的URL克隆项目,具体操作如下:
- 执行克隆命令:
git clone http://84fdf6ccc7dc/test/testproject.git - 执行命令后,终端会弹出用户名和密码的输入提示,直接输入你GitLab的账号密码即可完成认证克隆;
- 如果没有弹出提示,也可以把用户名密码临时嵌入URL(注意:这种方式会在命令历史中留下密码,不推荐在公共环境使用):
git clone http://你的GitLab用户名:你的GitLab密码@84fdf6ccc7dc/test/testproject.git
方案二:修改GitLab配置,让克隆URL使用宿主机IP(推荐长期使用)
这个方法可以从根源上解决克隆URL的问题,让所有项目的克隆地址都自动使用你浏览器访问的宿主机IP,步骤如下:
- 进入正在运行的GitLab容器:
sudo docker exec -it gitlab1 /bin/bash - 编辑GitLab的核心配置文件:
vim /etc/gitlab/gitlab.rb - 找到
external_url配置项(可能被注释掉了,去掉前面的#),修改为你的宿主机IP和对应的映射端口(你把容器80端口映射到了宿主机8800,所以要加上端口):external_url 'http://10.240.1.2:8800' - 保存并退出vim编辑器:按
Esc键,输入:wq后回车; - 让GitLab重新加载配置:
gitlab-ctl reconfigure - 退出容器:
exit - 重启GitLab容器使配置生效:
sudo docker restart gitlab1
等容器重启完成后,你再去GitLab页面查看项目的克隆URL,就会变成http://10.240.1.2:8800/test/testproject.git,之后克隆项目直接用这个地址即可,认证方式和方案一一致。
备注:内容来源于stack exchange,提问作者sunnyboy




