登录
首页 >  Golang >  Go问答

在 Docker 容器中使用 Mono 存储库安装 Go 依赖

来源:stackoverflow

时间:2024-03-03 23:48:27 133浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《在 Docker 容器中使用 Mono 存储库安装 Go 依赖》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我有一个具有该结构的单一存储库。

mono-repo
- servicea
 - main.go
 - dockerfile
-serviceb
 - main.go
 - dockerfile
go.mod
go.sum

servicea 中的 dockerfile 包含以下代码。

FROM golang

ENV GO111MODULE=on

WORKDIR /app

COPY . .

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

ENTRYPOINT ["/app/serviceA"]

我想构建 docker 映像并在容器内包含来自 mono-repo 根目录的依赖项,我当前收到一条错误,指出在运行时找不到任何依赖项包

docker build -t servicea 。

除非我将 go.mod 放入 servicea 中,否则我看不到实现我想要的效果的好方法。通过将 go.mod 放入服务中,感觉就像我失去了服务在存储库中共享依赖项的优势。


解决方案


通过将 go.mod 放入服务中,感觉就像我失去了服务在存储库中共享依赖项的优势。

然而,这是一种常见的方法 herethere,其中 copy go.mod . (和 copy go.sum .)后面是 run go mod download

#This is the ‘magic’ step that will download all the dependencies that are specified in 
# the go.mod and go.sum file.
# Because of how the layer caching system works in Docker, the  go mod download 
# command will _ only_ be re-run when the go.mod or go.sum file change 
# (or when we add another docker instruction this line)
RUN go mod download

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>