spotify / docker-maven-plugin

INACTIVE: A maven plugin for Docker
Apache License 2.0
2.66k stars 575 forks source link

Issue with Docker 1.13.1 on macOS #315

Closed hypery2k closed 7 years ago

hypery2k commented 7 years ago

Description

I'm running Docker on macOS and getting Exception caught: Request error: POST

How to reproduce

Install Docker 1.13.1 and try to build an image via mvn docker:build

What do you expect

An successful build

What happened instead

The build is failing

Software:

Full backtrace

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project app-platform: Exception caught: Request error: POST unix://localhost:80/build?t=app-platform: 500: HTTP 500 Internal Server Error -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project app-platform: Exception caught
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Exception caught
    at com.spotify.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:141)
    at com.spotify.docker.BuildMojo.execute(BuildMojo.java:86)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    ... 20 more
Caused by: com.spotify.docker.client.exceptions.DockerRequestException: Request error: POST unix://localhost:80/build?t=app-platform: 500
    at com.spotify.docker.client.DefaultDockerClient.propagate(DefaultDockerClient.java:1600)
    at com.spotify.docker.client.DefaultDockerClient.request(DefaultDockerClient.java:1550)
    at com.spotify.docker.client.DefaultDockerClient.build(DefaultDockerClient.java:1145)
    at com.spotify.docker.client.DefaultDockerClient.build(DefaultDockerClient.java:1107)
    at com.spotify.docker.BuildMojo.buildImage(BuildMojo.java:571)
    at com.spotify.docker.BuildMojo.execute(BuildMojo.java:355)
    at com.spotify.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:139)
    ... 23 more
Caused by: com.spotify.docker.client.shaded.javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error
    at org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:1002)
    at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:799)
    at org.glassfish.jersey.client.JerseyInvocation.access$500(JerseyInvocation.java:91)
    at org.glassfish.jersey.client.JerseyInvocation$5.completed(JerseyInvocation.java:760)
    at org.glassfish.jersey.client.ClientRuntime.processResponse(ClientRuntime.java:197)
    at org.glassfish.jersey.client.ClientRuntime.access$300(ClientRuntime.java:78)
    at org.glassfish.jersey.client.ClientRuntime$2.run(ClientRuntime.java:179)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:340)
    at org.glassfish.jersey.client.ClientRuntime$3.run(ClientRuntime.java:209)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
cwolfinger commented 7 years ago

So I ran into this as well and I traced it down to null arguments that docker now rejects. For example as en example if the following "docker.http.proxy" is empty then Docker rejects the build

<docker.http.proxy></docker.http.proxy>

...

<buildArgs>
                   <HTTPS_PROXY>${docker.http.proxy}</HTTPS_PROXY>
                   <https_proxy>${docker.http.proxy}</https_proxy>
</buildArgs>
twogoods commented 7 years ago

check docker.log . here:~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log

hypery2k commented 7 years ago

the error was a newline in

 <entryPoint>["java", "-Dspring.profiles.active=h2,env-docker", "-jar",
              "/${project.build.finalName}-exec.jar"]
</entryPoint>

Has to be:

 <entryPoint>["java", "-Dspring.profiles.active=h2,env-docker", "-jar", "/${project.build.finalName}-exec.jar"]</entryPoint>