首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.dockerignore文件中包含pkg

在.dockerignore文件中包含pkg
EN

Stack Overflow用户
提问于 2018-11-04 11:47:25
回答 1查看 267关注 0票数 1

现在,我的.dockerignore文件包含以下内容:

代码语言:javascript
复制
.vscode
.idea
.git
bin
pkg

我的Dockerfile看起来像这样:

代码语言:javascript
复制
FROM golang:latest
RUN mkdir -p /app
WORKDIR /app
COPY . .
ENV GOPATH /app
RUN go install huru
EXPOSE 3000
ENTRYPOINT /app/bin/huru

我的问题是-我是否应该将pkg文件夹从主机复制到镜像?现在我不是,正如我的dockerignore文件清楚地表明的那样。

我感觉我应该把pkg文件夹从主机复制到镜像,因为其中可能有go install可以使用的预先构建的文件,而不是从github等重新下载源代码?

EN

回答 1

Stack Overflow用户

发布于 2018-11-04 18:59:30

就我个人而言,我认为将pkg文件夹从主机复制到镜像不是一个好主意,因为:

  • 它将构建镜像的位置(您的主机)和镜像本身紧密地耦合在一起。根据构建映像的位置不同,生成的映像可能会有所不同,这可能是您不希望在
  • 中看到的。此外,如果使用自动构建(例如从CI ),则每次都可能从干净环境重新构建整个应用程序,因此没有要复制的初始pkg文件夹。

如果您熟悉Java world,我已经在使用Maven构建映像时遇到过这个问题。为了加快构建速度,一些人正在复制映像中的本地Maven存储库(~/.m2),以避免重新下载工件。我并不特别同意这一点,因为他们的.m2文件夹总是存在包含损坏工件的风险:因此,在他们的机器上构建的映像将与在干净的环境中构建的映像不同。这取决于你是想要一致的构建,还是想要快速构建(我更喜欢前者)。

总之,我认为从干净的环境中构建镜像,而不依赖于构建镜像的主机,是一种很好的实践。这就是为什么我个人不会复制任何文件(除了应用程序源代码!)在图像内部。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53137590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档