【问题标题】:Go Mod Private RepoGo Mod 私人回购
【发布时间】:2021-10-30 04:13:23
【问题描述】:

所以我有一个我的main.go 导入的私人回购。我在进行构建时收到此错误:

找不到路径的模块

我需要为私人回购做任何特别的事情吗?我一直在谷歌搜索,找不到任何好的信息。它适用于 dep。

【问题讨论】:

    标签: go vgo


    【解决方案1】:

    这样做

    git config --global --add url."git@your-repo.com:".insteadOf "https://your-repo.com/"
    export GOPRIVATE='your-repo.com'
    

    确保通过 ssh 进行的 git clone 工作正常。

    【讨论】:

      【解决方案2】:

      (答案来自this SO Question

      我在 Medium 上为此写了一个解决方案:Go Modules with Private Git Repositories

      我们处理它的方式与Alex Pliutau 的答案基本相同,并且该博客更详细地介绍了如何使用来自 GitHub/GitLab/BitBucket 的令牌设置 git config 的示例。它还介绍了使用带有私有存储库的模块的工作 Dockerfile 示例。

      GitLab 的相关位:

      git config --global \
        url."https://oauth2:${personal_access_token}@privategitlab.com".insteadOf \
        "https://privategitlab.com"
      
      #or 
      
      git config --global \
        url."https://${user}:${personal_access_token}@privategitlab.com".insteadOf \
        "https://privategitlab.com"
      

      希望对你有帮助。

      【讨论】:

        【解决方案3】:

        您应该使用 SSH 密钥来获取您的存储库,检查您的 SSH 密钥是否也在系统钥匙串中:

        ssh-add -K ~/.ssh/id_rsa

        【讨论】:

        • 重要的一点是 Docker 将看到的键的默认名称是 id_rsa(以及其他一些默认值)。这个非常重要。如果您的密钥具有不同的名称,它将不起作用。另外我不确定你为什么需要-K 标志。
        【解决方案4】:

        鉴于这样一个私有仓库经常处于积极开发中,我个人只是将它克隆到我的$GOPATH 中的“正确”位置,并像使用任何其他项目一样使用源代码管理(例如 git)。在 Rodrigo 的回答中添加 SSH 密钥很棒,但是如果您无论如何都在积极开发私有存储库,那么将其克隆到正确目录的额外步骤绝对不是一个困难的步骤,而不是能够go get 它。

        因此,例如,对于托管在 Github 上的私人回购,我会 cd$GOHOME/src/github.com/git-username-for-repo 然后 git clone the-repo

        【讨论】:

        • 如果您有一份报告,那效果很好。如果你有 100 个......(即 A 依赖于 B,并且你正在为 A 构建一个 docker,则 docker 必须检索 B)
        猜你喜欢
        • 2020-01-13
        • 2023-02-01
        • 2014-10-17
        • 1970-01-01
        • 2021-12-16
        • 2021-03-29
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        相关资源
        最近更新 更多