You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jib部署Spring微服务时mvn jib:build执行失败求助

Jib部署Spring微服务时连接被主机中止的问题排查与解决

问题详情

使用Jib Maven插件(3.3.0版本)将Spring Cloud的discovery-service部署至Docker Hub时,出现连接中止错误,构建卡在77.8%的镜像层推送阶段。环境为OpenJDK 17 Alpine,已尝试重启电脑、清理Docker的config.json文件,问题未解决。

构建日志如下:

PS C:\xampp\htdocs\weddingapp-main\weddingapp> mvn clean compile jib:build -rf :discovery-service                                                                                               [INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] discovery-service                                                  [jar]
[INFO] api-gateway                                                        [jar]
[INFO] wedding                                                            [jar]
[INFO] users                                                              [jar]
[INFO]
[INFO] -----------------< com.slinkdigital:discovery-service >-----------------
[INFO] Building discovery-service 1.0-SNAPSHOT                            [1/4]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ discovery-service ---
[INFO] Deleting C:\xampp\htdocs\weddingapp-main\weddingapp\discovery-service\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ discovery-service ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ discovery-service ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to C:\xampp\htdocs\weddingapp-main\weddingapp\discovery-service\target\classes
[INFO]
[INFO] --- jib-maven-plugin:3.3.0:build (default-cli) @ discovery-service ---
[INFO]
[INFO] Containerizing application to registry.hub.docker.com/davidtega/discovery-service...
[INFO] Using credentials from Maven settings file for registry.hub.docker.com/davidtega/discovery-service
[INFO]
[INFO] Container entrypoint set to [java, -cp, @/app/jib-classpath-file, com.slinkdigital.eureka.DiscoveryServiceApplication]
[WARNING] PATCH https://registry.hub.docker.com/v2/davidtega/discovery-service/blobs/uploads/79257277-0299-4f05-90cc-e33f34d3a44a?_state=P1UgMi0NjbwAR3C9mu77RBBM0P2yRJNUC5Qz-wEGppl7Ik5hbWUiOiJkYXZpZHRlZ2EvZGlzY292ZXJ5LXNlcnZpY2UiLCJVVUlEIjoiNzkyNTcyNzctMDI5OS00ZjA1LTkwY2MtZTMzZjM0ZDNhNDRhIiwiT2Zmc2V0IjowLCJTdGFydGVkQXQiOiIyMDIyLTEwLTEyVDA0OjMyOjU2Ljg4OTcxNzc4OFoifQ%3D%3D failed and will NOT be retried
[ERROR] I/O error for image [registry.hub.docker.com/davidtega/discovery-service]:
[ERROR]     java.net.SocketException
[ERROR]     An established connection was aborted by the software in your host machine
[INFO] Executing tasks:
[INFO] [=======================       ] 77.8% complete
[INFO] > launching layer pushers
[INFO] > scheduling pushing manifests
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for discovery-service 1.0-SNAPSHOT:
[INFO]
[INFO] discovery-service .................................. FAILURE [32:57 min]
[INFO] api-gateway ........................................ SKIPPED
[INFO] wedding ............................................ SKIPPED
[INFO] users .............................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  32:58 min
[INFO] Finished at: 2022-10-12T06:05:32+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:3.3.0:build (default-cli) on project discovery-service: An established connection was aborted by the software in your host machine -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

解决方案

1. 排查网络拦截

  • 关闭本地防火墙,或添加Maven、Java进程的出站允许规则,避免拦截Jib向Docker Hub推送镜像的请求
  • 若使用代理,检查Maven settings.xml 中的代理配置是否正确,确保Docker Hub域名在代理白名单内;也可临时关闭代理后重试构建

2. 延长Jib超时时间

在pom.xml的Jib插件配置中增加超时参数,给镜像推送预留更充足的时间:

<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>jib-maven-plugin</artifactId>
  <version>3.3.0</version>
  <configuration>
    <container>
      <entrypoint>java, -cp, @/app/jib-classpath-file, com.slinkdigital.eureka.DiscoveryServiceApplication</entrypoint>
    </container>
    <timeout>300000</timeout> <!-- 设置为5分钟,单位毫秒 -->
  </configuration>
</plugin>

3. 借助本地Docker daemon构建推送

先通过Jib将镜像构建到本地Docker,再手动推送至Docker Hub,绕开Jib直接网络推送的问题:

# 构建镜像到本地Docker
mvn clean compile jib:dockerBuild -Dimage=registry.hub.docker.com/davidtega/discovery-service
# 手动推送镜像
docker push registry.hub.docker.com/davidtega/discovery-service

4. 升级Jib插件版本

当前使用的Jib 3.3.0版本较旧,升级至最新稳定版(如3.4.0及以上),新版本可能修复了网络相关的已知bug:

<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>jib-maven-plugin</artifactId>
  <version>3.4.0</version> <!-- 替换为最新稳定版本 -->
</plugin>

5. 验证仓库权限与凭证

  • 手动登录Docker Hub验证账号权限:执行 docker login registry.hub.docker.com,输入账号密码确认能正常登录
  • 检查Maven settings.xml 中配置的Docker Hub凭证是否正确,确保对davidtega/discovery-service仓库拥有读写权限

内容的提问来源于stack exchange,提问作者David Ogbodu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 12:50:29