dockerfile-maven-pulign 是对原来docker-maven-pulign插件的替代,插件作者推荐使用dockerfile-maven-pulign,而老版的插件也不在维护了,下面是我在使用dockerfile-maven-pulign遇到的问题.
通常情况下 我们的java项目要打包到一个具有jdk运行环境的容器中,我编写Dockerfile FROM 一个具有jdk环境的镜像,但是在使用dockerfile插件时 如果这个镜像是我们自己在服务器上构建的话,那么在运行 dockerfile:build 时 ,总是不能构建成功,会报如下错误:
[ERROR] pull access denied for test-java-jdk, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
[WARNING] An attempt failed, will retry 1 more times
明明我服务器上有我制作好的镜像,为什么不能直接使用呢,原因就是,dockerfile maven插件默认每次都会去docker仓库中找你FROM 的那个镜像的最新的,但是又找不到,所以会失败,此时我们只需要在dockerfile maven插件的配置项中配置 不使用最新的即可配置如下:
false
<configuration>
<pullNewerImage>false</pullNewerImage>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>