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

Docker Compose环境下Spring应用无法连接Cloud Config Server

Spring应用Docker部署后无法连接Cloud Config Server的解决方案

问题核心

报错 Caused by: org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://config:8888/application/local/main": Connection refused,主要原因是业务应用与配置服务器不在同一个Docker网络,同时bootstrap配置存在不合理项。

修复步骤

1. 确保两个服务在同一Docker网络

你的docker-compose.yml中,config服务加入了vd-network,但app服务未配置网络,导致两者处于不同默认网络,无法通过服务名config通信。修改app服务配置:

services:
  # ... 其他服务 ...
  app:
    image: my-image
    ports:
      - "9000:9000"
    networks:
      - vd-network  # 添加这一行,加入和config相同的网络

2. 修正bootstrap-docker.yaml配置

  • application.name需改为你的业务应用名称(而非config,config是配置服务器的应用名),否则会错误拉取配置服务器自身的配置
  • 统一config.import与cloud.config.uri的配置逻辑,避免冲突
  • 若使用Spring Boot 2.4+版本,需确保引入spring-cloud-starter-bootstrap依赖(否则bootstrap配置不会生效)

修正后的配置示例:

spring:
  application:
    name: your-app-name  # 替换为你的业务应用名称
  cloud:
    config:
      failFast: true
      profile: ${profile:local}
      debug: true
      uri: ${config.host:http://config:8888}
      label: main
  config:
    import: optional:configserver:${config.host:http://config:8888}

3. 验证Config Server可用性

在Config Server启动后,通过本地访问确认其正常运行:

curl http://localhost:8888/your-app-name/local/main

若能返回配置内容,说明配置服务器本身无问题;若返回错误,需检查Git仓库地址、账号密码等环境变量是否正确。

完整配置示例

修改后的docker-compose.yml

networks:
  vd-network:

services:
  config:
    image: hyness/spring-cloud-config-server:3.1.3-jdk11
    deploy:
      labels:
        description: "Spring Cloud Config Server"
      mode: replicated
      restart_policy:
        condition: on-failure
    networks:
      - vd-network
    environment:
      - SPRING_APPLICATION_NAME=config
      - SERVER_PORT=8888
      - SPRING_CLOUD_CONFIG_SERVER_GIT_URI=<URI>
      - SPRING_CLOUD_CONFIG_SERVER_GIT_REFRESH-RATE=3
      - SPRING_CLOUD_CONFIG_SERVER_GIT_USERNAME=<NAME>
      - SPRING_CLOUD_CONFIG_SERVER_GIT_PASSWORD=<PASSWORD>
      - SPRING_CLOUD_CONFIG_SERVER_GIT_DEFAULT-LABEL=main
      - SPRING_CLOUD_CONFIG_SERVER_GIT_SKIPSSLVALIDATION=true
      - ENCRYPT_KEY=<KEY>
    ports:
      - "8888:8888"
  app:
    image: my-image
    ports:
      - "9000:9000"
    networks:
      - vd-network

修正后的bootstrap-docker.yaml

spring:
  application:
    name: your-app-name
  cloud:
    config:
      failFast: true
      profile: ${profile:local}
      debug: true
      uri: ${config.host:http://config:8888}
      label: main
  config:
    import: optional:configserver:${config.host:http://config:8888}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:02:13