遇到一个小难题,以前工程用的docker-maven-plugin插件,会把工程生成的jar包以及打docker用的dockerfile放到指定路径下。但是现在因为某些原因不使用这个插件,于是乎就遇到了一个问题。现在工程maven编译后会生成三个jar.举例为Test-SNAPSHOT.jar Test-SNAPSHOT-STUB.jar Test-SNAPSHOT.original .以前工程的Dockerfile中是这样把jar拷贝进docker中的。
ADD *.jar /app.jar
因为以前上文提到的插件会把Test-SNAPSHOT.jar这一个jar包拷贝到Dockerfile的同级目录下。现在问题来了,有两个以.jar结尾的jar包。于是我将Dockerfile修改为这样
ADD *-SNOPSHOT.jar /app.jar
但是一旦项目上线,jar包的version就不会有SNAPSHOT,因此这种办法行不通。
之后.dockerignore就发挥了大的作用!!!!!
.dockerignore 是一个和 .gitignore 类似的文件。
里面指定的文件,不会参与 Dockerfile 的构建,也就不会被 ADD。
把它放到和Dockerfile同级的目录就会生效。
于是我在这个文件中添加 *-stub.jar
于是再次编译的时候,及时Dockerfile中是ADD *.jar 也不会把带有stub的jar添加进去。
到此结束,0.0 开心