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

如何解决Spring Docker Compose中Docker JSON解析失败问题?

修复Spring Docker Compose启动时的JsonParseException错误

问题概述

启动Spring Boot应用时,使用Docker Compose模块出现以下JSON解析错误:

com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'name': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false') at [Source: (String)

环境信息

  • Spring Boot版本:3.2.3
  • 操作系统:Ubuntu WSL
  • Docker Compose版本:v2.25.0
  • Docker Engine版本:26.0.0

错误原因分析

  1. docker-compose.yaml格式错误:volumes段的driver配置语法错误,将driver: local错误写成嵌套结构,导致Docker Compose输出内容不符合Spring模块预期格式。
  2. 版本适配问题:较新版本的Docker Compose(v2.x)部分命令输出格式,与Spring Boot 3.2.3的Docker Compose模块存在适配冲突,导致模块接收到YAML格式输出而非预期的JSON格式。

修复步骤

步骤1:修正docker-compose.yaml语法错误

原配置中volumes的driver配置存在缩进错误,修改为正确的键值对格式:

version: '3.8'
services:
  db:
    image: mongo:latest
    ports:
      - '27017:27017'
    volumes:
      - db:/data/db
volumes:
  db:
    driver: local  # 去掉不必要的缩进,修正为直接赋值

步骤2:强制Docker Compose输出JSON格式

若修正yaml后仍报错,可通过Spring配置强制Docker Compose输出JSON格式。在应用配置文件(application.properties)中添加:

spring.docker.compose.command=docker compose --format json up -d

或使用YAML格式配置:

spring:
  docker:
    compose:
      command: docker compose --format json up -d

步骤3:降级Docker Compose版本(可选)

若上述方法无效,可尝试将Docker Compose版本降级至与Spring Boot 3.2.3更兼容的版本(如v2.20.0),规避版本适配问题。

验证修复

重启Spring Boot应用,检查是否能正常启动Docker Compose服务,且不再出现JSON解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 06:42:35