我正在镜像我的组织gitlab小组中的一个流行的go库(出于冗余目的)。
在我的代码中,我有:import ( "gitlab.com/org/group/library.git" )
我使用this answer来指导如何将go get与私有存储库一起使用。在我的机器上go get ./...
可以工作是因为我使用以下命令配置了git:
$ git config --global url.git@gitlab.com:.insteadOf https://gitlab.com/
当我尝试构建docker容器时,命令RUN go get ./...
失败,并显示以下输出:
package gitlab.com/org/group/library.git: cannot download, git://gitlab.com/org/group/library uses insecure protocol
从similar thread或this article看来,流行的答案是将ssh密钥上传到docker容器。我对此不太满意,因为我不完全了解正在执行的操作或安全隐患。
任何有关如何正确配置我的dockerfile或golang工作流程的见识都会有很大的帮助。
答案 0 :(得分:0)
golang v1.11似乎包含modules。
引用来源
模块是一组相关的Go软件包的集合,这些版本一起作为一个单元进行了版本控制。通常,单个版本控制存储库恰好对应于单个模块。
使用最新版本的golang和模块可以使我使用所有依赖项。