关于docker:spotify dockerfile-maven Dockerfile

spotify dockerfile-maven Dockerfile

我是一个Docker Maven插件新手。

如果我理解的很好,根据Spotify的dockerfile maven文档,应该将dockerfile放在我的项目的根目录中(我正在运行一个Spring引导项目)。

在参考Docker编写Dockerfiles的最佳实践时:

Regardless of where the Dockerfile actually lives, all of the
recursive contents of files and directories in the current directory
are sent to the Docker daemon as the build context. Inadvertently
including files that are not necessary for building the image results
in a larger build context and larger image size.

这是否意味着当spotify dockerfile maven插件运行配置时,我将暴露发送到docker守护进程的源文件夹?


回答

默认情况下,是的,构建上下文将包括源(和目标)目录。但是,您可以添加一个.dockerignore文件,告诉它不要这样做。

如果您不确定这是什么,请看本教程。

意见

IMO:我可以想象一些场景,从Maven运行Docker是正确的。然而,我的想象力是非常好的,不可能有许多商店采用Docker,但没有改变他们的传统Maven建造管道。

但在大多数情况下,你不想这样做。

相反,您应该使用一个DOCKER容器来构建Java工件并运行单元测试。这样就可以将工件推到nexus(或者您正在使用的任何repo)。如果这是一个webapp或其他HTTP服务,那么您可以使用第二个容器来承载它,并将其部署到环境中以进行集成测试。