美文网首页
gitlab私有库从http切换到https

gitlab私有库从http切换到https

作者: 紫云Miyula | 来源:发表于2021-12-31 18:11 被阅读0次

背景

因为go mod的各种限制,使用gitlab私有库会有各种限制和问题,最后还是需要通过https访问。所以最后痛定思痛,把内部gitlab给从http切换到了https

目标是实现能够愉快的:
go get -u git.xx.com/xx/xx

环境说明

  1. 公司原本的gitlab是搭建在内部局域网里的,所以用了一个公网不可能访问到的域名gitlab.xx.com。所以这次的切换,也需要把gitlab的域名配置切换到公司证书有效的域名下:git.our-compayname.com
  2. 公司的证书是*.our-companyname.com的泛域名证书,所以可以用来给gitlab做证书。只需要在内部局域网设置好ip和域名的对应位置即可。可以在使用公司证书的情况下,又保证只有内部网络可以访问。
  3. 免费版本的gitlab只支持二级目录go get,既 git.xx.com/xx/xx。但是也可以用一个比较土的方法规避这个问题,到三级目录的时候,module包名要写成git.xx.com/xx/xx/xx.git
go get -u git.xx.com/xx/xx/xx.git

就是包名和引用路径的名字看着特别一言难尽,别的没问题

  1. gitlab是通过docker-compose搭建的,所以改配置也在docker-compose里

配置步骤

  1. 修改docker-compose.yml配置
version: '3.3'
services:
  web:
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: 'git.xx.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://git.xx.com'
        nginx['enable'] = true
        nginx['redirect_http_to_https'] = true
        letsencrypt['enable'] = true
        # Add any other gitlab.rb configuration here, each on its own line
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'

说明:

  • 把https启动, nginx['enable'] = true
  • 注意端口80,443,22都要开放。22是给ssh用的
  • 证书的话,如果是阿里云那边申请的,给的是pem的,把pem后缀名改成crt就行了
  1. 把证书根据配置的域名放到/etc/gitlab/ssl目录下
git.xx.com.crt     git.xx.com.key
  1. 更新镜像
docker-compose up -d 
  1. gitlab启动需要比较长的一个时间。等启动后,进入一个旧的项目,就会发现,git clone的地址变了
git@gitlab.xx.com:xx/xx/dataserver.git => git@git.xx.com:xx/xx/dataserver.git
  1. 切换本地库的git地址
# 查看当前地址
git config remote.origin.url
# 结果
git@gitlab.xx.com:xx/xx/dataserver.git
# 切换到新地址
git config remote.origin.url git@git.xx.com:xx/xx/dataserver.git
# 查看当前地址
git config remote.origin.url
# 结果
git@git.xx.com:xx/xx/dataserver.git
  1. 引用本地私有库,把GOPRIVATE设置好就行啦
export GOPROXY=https://goproxy.cn
export GOPRIVATE=git.xx.com

然后就能各种愉快的go get了

相关文章

  • Pod私有库搭建

    Pod私有库搭建 1、申请私有索引库项目权限: https://gitlab.pengpengla.com/pen...

  • 建立Pod私有库

    source仓库 gitlab上建立MyPodSpecs.git terminal 私有库 创建私有库 提交至服务...

  • 基于GitLab创建CocoaPods私有库

    一、默认安装并配置好私有Gitlab 二、在私有Gitlab上创建自己的版本库(和创建新的项目一样) 假如 版本库...

  • 搭建厂内前端体系

    搭建私有仓库:gitlab:https://about.gitlab.com/downloads/#centos7...

  • Cocoapods私有库实现

    使用pod命令来自动创建工程 新建私有git库 gitlab/github 添加私有库到本地pod库 检查效果 这...

  • iOS 组件化初识

    一、创建本地repo,并与远端repo私有索引库关联 GitLab创建repo私有库 本地创建repo索引文件,并...

  • 组件化第三篇:使用CocoaPods管理自己的框架

    创建私有的Spec Repo 新建一个私有索引库,可以使用GitHub、码市、GitLab等平台 添加远程索引库时...

  • iOS ReactNative私有库指南

    创建RN私有库 为了加速RN的下载和方便集成,我把RN(0.56.0)做成私有pod放到了gitlab的私有源中,...

  • golang拉取私有库代码问题

    楔子 在开发程序中我们会引入自己的私有库代码,这个私有库代码由gitlab gitea等服务托管。我们想通过go ...

  • 搭建GitLab服务器

    GitLab安装与维护 GitLab是GitHub的免费私有库替代方案,并且安装与配置都很方便。 系统需求 Git...

网友评论

      本文标题:gitlab私有库从http切换到https

      本文链接:https://www.haomeiwen.com/subject/iftaqrtx.html