登录
首页 >  Golang >  Go问答

从 go.mod 手动获取依赖项?

来源:Golang技术栈

时间:2023-05-01 14:04:51 209浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《从 go.mod 手动获取依赖项?》主要内容涉及到golang等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我正在使用带有模块支持的 go 1.11。我知道 go 工具现在会在构建/安装时自动安装依赖项。我也明白其中的道理。

我正在使用 docker 来构建我的二进制文件。在许多其他生态系统中,复制您的依赖项清单(package.json、requirements.txt 等)并将依赖项安装为独立于构建的阶段是很常见的。这利用了 docker 的层缓存,并使重建速度更快,因为通常代码更改大大超过依赖项更改。

我想知道vgo是否有办法做到这一点?

正确答案

这是一个问题#26610,现在已修复。

所以现在你可以使用:

go mod download

为此,您只需要go.mod/go.sum文件。

例如,以下是缓存多阶段 Docker 构建的方法:([来源](https://www.docker.com/blog/containerize-your- go-developer-environment-part-1/))

FROM golang:1.17-alpine as builder
RUN apk --no-cache add ca-certificates git
WORKDIR /build

# Fetch dependencies
COPY go.mod go.sum ./
RUN go mod download

# Build
COPY . ./
RUN CGO_ENABLED=0 go build

# Create final image
FROM alpine
WORKDIR /
COPY --from=builder /build/myapp .
EXPOSE 8080
CMD ["./myapp"]

另请参阅文章[Containerize Your Go Developer Environment - Part 2](https://www.docker.com/blog/containerize-your-go-developer-environment- part-2/),其中描述了如何利用 Go 编译器缓存 进一步加快构建速度。

理论要掌握,实操不能落!以上关于《从 go.mod 手动获取依赖项?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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