You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

本地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,步骤如下:

  1. 进入正在运行的GitLab容器:
    sudo docker exec -it gitlab1 /bin/bash
    
  2. 编辑GitLab的核心配置文件:
    vim /etc/gitlab/gitlab.rb
    
  3. 找到external_url配置项(可能被注释掉了,去掉前面的#),修改为你的宿主机IP和对应的映射端口(你把容器80端口映射到了宿主机8800,所以要加上端口):
    external_url 'http://10.240.1.2:8800'
    
  4. 保存并退出vim编辑器:按Esc键,输入:wq后回车;
  5. 让GitLab重新加载配置:
    gitlab-ctl reconfigure
    
  6. 退出容器:
    exit
    
  7. 重启GitLab容器使配置生效:
    sudo docker restart gitlab1
    

等容器重启完成后,你再去GitLab页面查看项目的克隆URL,就会变成http://10.240.1.2:8800/test/testproject.git,之后克隆项目直接用这个地址即可,认证方式和方案一一致。

备注:内容来源于stack exchange,提问作者sunnyboy

火山引擎 最新活动