典型的go docker模式是这样的:
# cache modules
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
RUN make
在编译实际源之前,这将为下载的软件包创建一个(缓存的)层。最好在添加应用程序之前不仅下载而且编译软件包,以进一步加快重复构建的速度。
不管父应用程序如何,如何强制编译所有下载的软件包?
最佳答案
在docker build中使用go mod download
的目的是避免等待依赖项的源代码被编译。由于您想避免这种行为,因此可以将该行替换为
RUN go get -d -v
关于docker - 如何为docker build缓存golang软件包的build工件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60474679/