现在,我的.dockerignore文件包含以下内容:
.vscode
.idea
.git
bin
pkg我的Dockerfile看起来像这样:
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等重新下载源代码?
发布于 2018-11-04 18:59:30
就我个人而言,我认为将pkg文件夹从主机复制到镜像不是一个好主意,因为:
pkg文件夹。如果您熟悉Java world,我已经在使用Maven构建映像时遇到过这个问题。为了加快构建速度,一些人正在复制映像中的本地Maven存储库(~/.m2),以避免重新下载工件。我并不特别同意这一点,因为他们的.m2文件夹总是存在包含损坏工件的风险:因此,在他们的机器上构建的映像将与在干净的环境中构建的映像不同。这取决于你是想要一致的构建,还是想要快速构建(我更喜欢前者)。
总之,我认为从干净的环境中构建镜像,而不依赖于构建镜像的主机,是一种很好的实践。这就是为什么我个人不会复制任何文件(除了应用程序源代码!)在图像内部。
https://stackoverflow.com/questions/53137590
复制相似问题