在构建docker容器时使用本地依赖项

在构建docker容器时使用本地依赖项,docker,go,Docker,Go,我有一项服务,它过渡地依赖于某个图书馆(我也在开发)。测试库更改是否正确的唯一方法是运行服务 我怎么能在本地做呢 我有该库的两个版本: 供应商文件夹中的稳定版本 实际的一个,内部有未测试的更改GOPATH 因此,我可以将其从供应商中删除,go build将使用GOPATH中的版本正常工作 问题是使用docker? 显而易见的解决方案是在构建阶段将本地GOPATH复制到容器中,但是GOPATH的大小非常大,这种方法成本太高 为什么不尝试将库文件夹装载到容器中,并在dockerfile中定义路

我有一项服务,它过渡地依赖于某个图书馆(我也在开发)。测试库更改是否正确的唯一方法是运行服务

我怎么能在本地做呢 我有该库的两个版本:

  • 供应商文件夹中的稳定版本
  • 实际的一个,内部有未测试的更改
    GOPATH
因此,我可以将其从
供应商
中删除,
go build
将使用
GOPATH
中的版本正常工作


问题是使用
docker


显而易见的解决方案是在构建阶段将本地
GOPATH
复制到容器中,但是
GOPATH
的大小非常大,这种方法成本太高

为什么不尝试将库文件夹装载到容器中,并在dockerfile中定义路径,这样您的映像就不会太大,并且该路径将从装载的目录中获取相关库。

是否使用Go模块?或者,是否可以在生成时访问源代码管理中的依赖库?有
go.mod
go-get
语法来引用特定的提交,您可以将库推送到分支。在问题中包含
Dockerfile
,也将有助于理解您当前的构建环境。@DavidMaze是的,我是。实际上,我正在尝试在测试新的更改是否有效之前不提交或推送。它可以防止源分支中出现大量未工作的提交。因此,我正在寻找一种方法来构建依赖项位于服务源代码之外的服务。我不完全确定我是否理解这个问题。但也许
go-mod供应商
能帮上忙,不是吗@迪安考利,不幸的是,这没用。我需要一种在构建docker期间使用依赖项库中未提交(位于服务源代码之外)更改的方法container@DavidMaze哦,对不起,我不知道,谢谢,很高兴知道。