docker-maven-plugin icon indicating copy to clipboard operation
docker-maven-plugin copied to clipboard

NullpointerException when platform argument is empty in createImageOptions

Open stoerr opened this issue 2 years ago • 0 comments

Description

I get a NullPointerException from the plugin when I try to build

                        <image>...
                            <build>...
                                <createImageOptions>
                                    <platform>${docker.platform}</platform>
                                </createImageOptions>
                            </build>...
                        </image>

when the property docker.platform is empty. I introduced that as a convenient way to build cross platform docker images, but when I just want to build for the current platform I'd like to leave it empty, rather than having to find out the platform. But this crashes the maven build. I'd suggest to check for empty arguments in createImageOptions and just leave them out.

Info

  • docker-maven-plugin version :
  • Maven version (mvn -v) :
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /Users/hps/dev/soft/apache-maven-3
Java version: 11.0.3, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-11.0.3.jdk/Contents/Home
Default locale: en_DE, platform encoding: US-ASCII
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"
  • Docker version : Docker Desktop 4.6.1

Relevant part of the stacktrace:

Caused by: java.lang.NullPointerException
     at java.net.URLEncoder.encode (URLEncoder.java:224)
     at java.net.URLEncoder.encode (URLEncoder.java:196)
     at io.fabric8.maven.docker.access.UrlBuilder.encode (UrlBuilder.java:194)
     at io.fabric8.maven.docker.access.UrlBuilder.access$400 (UrlBuilder.java:15)
     at io.fabric8.maven.docker.access.UrlBuilder$Builder.build (UrlBuilder.java:280)
     at io.fabric8.maven.docker.access.UrlBuilder.pullImage (UrlBuilder.java:109)
     at io.fabric8.maven.docker.access.hc.DockerAccessWithHcClient.pullImage (DockerAccessWithHcClient.java:524)
     at io.fabric8.maven.docker.service.RegistryService.pullImageWithPolicy (RegistryService.java:115)
     at io.fabric8.maven.docker.service.BuildService.autoPullBaseImage (BuildService.java:391)
     at io.fabric8.maven.docker.service.BuildService.buildImage (BuildService.java:67)
     at io.fabric8.maven.docker.BuildMojo.proceedWithDockerBuild (BuildMojo.java:98)
     at io.fabric8.maven.docker.BuildMojo.proceedWithBuildProcess (BuildMojo.java:86)
     at io.fabric8.maven.docker.BuildMojo.buildAndTag (BuildMojo.java:79)
     at io.fabric8.maven.docker.BuildMojo.processImageConfig (BuildMojo.java:151)
     at io.fabric8.maven.docker.BuildMojo.executeInternal (BuildMojo.java:68)
     at io.fabric8.maven.docker.AbstractDockerMojo.execute (AbstractDockerMojo.java:280)
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)

stoerr avatar Apr 07 '22 10:04 stoerr