我是一个码头管理员,maven插件新手。
如果我理解得很好,根据Spotify的Dockerfile Maven文档的说法,人们应该将Dockerfile放在我的项目的根目录上(我正在运行一个spring引导项目)。
在引用码头的编写Dockerfiles的最佳实践时
无论Dockerfile实际位于何处,当前目录中的所有文件和目录的递归内容都作为构建上下文发送到Docker守护进程。在无意中,包括构建映像所不需要的文件会导致生成更大的上下文和更大的图像大小。
这是否意味着,当Spotify Dockerfile Maven插件运行配置时,我将公开发送到docker守护进程的源文件夹?
发布于 2018-09-04 12:01:37
回答
默认情况下,构建上下文将包括源(和目标)目录。但是,您可以添加一个.dockerignore文件,告诉它不要这样做。
如果你不知道这是什么,看一看本教程。
意见
IMO:我可以想象,从maven运行码头将是正确的做法。然而,我的想象力是非常好的,不可能有那么多的商店采用的码头,但不改变他们的遗留maven构建管道。
然而,在大多数情况下,您不想这样做。
相反,您应该使用一个docker容器来构建java工件并运行单元测试。这样就可以将工件推送到nexus (或任何您正在使用的回购)。如果这是一个webapp或其他http服务,那么您可以使用第二个容器来承载它,并将其部署到一个环境中来进行集成测试。
https://stackoverflow.com/questions/52165814
复制相似问题