在 docker 中使用 gitlab 私有仓库作为 golang 依赖

dan*_*789 6 go gitlab docker

我正在我的组织 gitlab 组中镜像一个流行的 go 库(用于冗余)。

在我的代码中,我有: import ( "gitlab.com/org/group/library.git" )

我使用这个答案来指导如何使用带有私有存储库的 go get。在我的机器上go get ./...工作是因为我使用以下命令配置了 git:

$ git config --global url.git@gitlab.com:.insteadOf https://gitlab.com/
Run Code Online (Sandbox Code Playgroud)

当我尝试构建 docker 容器时,命令RUN go get ./...失败并显示以下输出:

package gitlab.com/org/group/library.git: cannot download, git://gitlab.com/org/group/library uses insecure protocol
Run Code Online (Sandbox Code Playgroud)

似乎来自类似线程本文的流行答案是执行诸如将 ssh 密钥上传到 docker 容器之类的操作。我真的对此感到不舒服,因为我不完全了解正在做什么或安全隐患。

任何有关如何正确配置我的 dockerfile 或我的 golang 工作流程的见解都会有很大帮助。

dan*_*789 0

看来 golang v1.11 包含module

引用来源

模块是相关 Go 包的集合,它们作为一个单元一起进行版本控制。大多数情况下,单个版本控制存储库完全对应于单个模块。

使用最新版本的 golang 和模块允许我使用所有依赖项。