spring-boot-maven-plugin:build-image 失败并出现 400 Bad Request
Posted
技术标签:
【中文标题】spring-boot-maven-plugin:build-image 失败并出现 400 Bad Request【英文标题】:spring-boot-maven-plugin:build-image fails with 400 Bad Request 【发布时间】:2020-12-09 00:42:06 【问题描述】:我正在尝试使用 spring-boot-maven-plugin:build-image 目标为我的基本 Spring Boot 应用程序构建一个 docker 映像。
失败并出现以下错误:
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.4.0-M2:build-image (default-cli) on project spring-docker: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:2.4.0-M2:build-image failed: **Docker API call to 'localhost/v1.24/containers/eaaba1e2a727547ae53df3c1f7c4420ba821914b4392ea12ff47326ee03eeaa5/start' failed with status code 400 "Bad Request"** -> [Help 1]
我已尝试使用 Spring Boot 2.3.3.RELEASE 和 2.4.0-M2,但我得到了同样的错误。
我在 Windows 10 机器上运行 Docker Desktop。
$ docker version
**Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40**
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:43:18 2020
OS/Arch: windows/amd64
Experimental: false
**Server: Docker Engine - Community
Engine:
Version: 19.03.12
API version: 1.40 (minimum version 1.12)**
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:49:27 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
完整的堆栈跟踪:
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.4.0-M2:build-image (default-cli) on project spring-docker: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:2.4.0-M2:build-image failed: Docker API call to 'localhost/v1.24/containers/cbdb316cb8cb0fbdf641bc7347f56701429d7a887fb240768e8710d36ca5f836/start' failed with status code 400 "Bad Request" -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.4.0-M2:build-image (default-cli) on project spring-docker: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:2.4.0-M2:build-image failed: Docker API call to 'localhost/v1.24/containers/cbdb316cb8cb0fbdf641bc7347f56701429d7a887fb240768e8710d36ca5f836/start' failed with status code 400 "Bad Request"
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
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.PluginExecutionException: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:2.4.0-M2:build-image failed: Docker API call to 'localhost/v1.24/containers/cbdb316cb8cb0fbdf641bc7347f56701429d7a887fb240768e8710d36ca5f836/start' failed with status code 400 "Bad Request"
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
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.springframework.boot.buildpack.platform.docker.transport.DockerEngineException: Docker API call to 'localhost/v1.24/containers/cbdb316cb8cb0fbdf641bc7347f56701429d7a887fb240768e8710d36ca5f836/start' failed with status code 400 "Bad Request"
at org.springframework.boot.buildpack.platform.docker.transport.HttpClientTransport.execute (HttpClientTransport.java:136)
at org.springframework.boot.buildpack.platform.docker.transport.HttpClientTransport.post (HttpClientTransport.java:82)
at org.springframework.boot.buildpack.platform.docker.DockerApi$ContainerApi.start (DockerApi.java:264)
at org.springframework.boot.buildpack.platform.build.Lifecycle.run (Lifecycle.java:148)
at org.springframework.boot.buildpack.platform.build.Lifecycle.execute (Lifecycle.java:113)
at org.springframework.boot.buildpack.platform.build.Builder.executeLifecycle (Builder.java:133)
at org.springframework.boot.buildpack.platform.build.Builder.build (Builder.java:72)
at org.springframework.boot.maven.BuildImageMojo.buildImage (BuildImageMojo.java:152)
at org.springframework.boot.maven.BuildImageMojo.execute (BuildImageMojo.java:144)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
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)
【问题讨论】:
我也遇到了同样的问题,在 Win10 Docker 安装上也是如此。但是,我可以消除一些我迄今为止自己尝试过但没有奏效的解决方案(主要是尝试在其他环境中生成图像)。为我产生此错误的项目在尝试使用 docker 插件(与 springboot 插件相反)构建映像时引发相同的错误,并且它显示在 Ubuntu 18 和 Mac Catalina 上运行的相同问题,所有这些都在 Docker 上运行引擎 19.03 如果它有帮助的话,问题就从昨天开始的一个项目开始了:/ 我建议也用“docker”标签来标记它。 也遇到了同样的问题,今天才开始 我也有这个问题,今天开始,19.08.2020
。我正在尝试在 ubuntu 和 git ci pipline 上构建图像。昨天所有项目都正常工作,但今天有错误
今天 - 它正在工作
【参考方案1】:
在做
docker 卷修剪
解决了我的问题。
【讨论】:
危险命令,慎用!也不能为我解决问题。以上是关于spring-boot-maven-plugin:build-image 失败并出现 400 Bad Request的主要内容,如果未能解决你的问题,请参考以下文章
spring-boot-maven-plugin:build-image 失败并出现 400 Bad Request
spring-boot-maven-plugin:[unknown-version]
spring-boot-maven-plugin未指定版本导致的编译错误
spring-boot-maven-plugin未指定版本导致的编译错误