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

Docker Compose无法同时运行Spring Boot与PostgreSQL服务问题求助

解决Docker Compose中Spring Boot服务无法启动的问题

我来帮你排查一下这个问题,从你提供的配置文件来看,有几个关键细节出错了,这应该就是导致Spring Boot服务启动失败的原因:

1. 数据库连接URL的双重错误

你的docker-compose.yml里Spring Boot的数据源URL写了jdbc:jdbc:postgresql://localhost:5432/test_db,这里有两个明显的问题:

  • 多了一个jdbc:前缀,PostgreSQL的JDBC URL正确格式应该是jdbc:postgresql://<主机>:<端口>/<数据库名>
  • 在Docker Compose的内部网络环境中,容器之间不能用localhost访问其他服务,必须用服务名(也就是你定义的postgres)作为主机名——Compose会自动为每个服务创建内部DNS解析,直接用服务名就能访问对应的容器

修正后的URL应该是:

SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/test_db

另外,你还需要让PostgreSQL容器启动时自动创建test_db数据库,默认情况下PostgreSQL不会自动生成指定库,所以给PostgreSQL服务加一个环境变量:

postgres:
  image: 'postgres:13.1-alpine'
  container_name: db
  environment:
    - POSTGRES_USER=user
    - POSTGRES_PASSWORD=123456
    - POSTGRES_DB=test_db

2. 先确认Spring Boot镜像构建是否正常

有时候镜像构建过程中会悄悄出错,导致容器无法启动。你可以先单独构建镜像并测试运行,看看有没有报错:

docker build -t linhan .
docker run --rm linhan

检查输出是否有找不到jar包、JDK版本不兼容之类的错误。另外要注意,构建镜像前一定要先执行mvn package(Maven项目)或者gradle build(Gradle项目),确保target目录下确实存在LinhAn-0.0.1-SNAPSHOT.jar这个文件。

3. 查看容器启动日志定位具体问题

即使容器没正常运行,你也可以通过日志找到失败原因:

docker logs api

或者直接执行docker-compose up(不要加-d后台运行参数),实时查看前台输出的日志,这样能快速看到是数据库连接失败、依赖缺失还是其他启动错误。

修正后的完整配置参考

version: '2'
services:
  spring_boot:
    image: 'linhan'
    build: .
    container_name: api
    ports:
      - "8080:8080"
    depends_on:
      - postgres
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/test_db
      - SPRING_DATASOURCE_USERNAME=user
      - SPRING_DATASOURCE_PASSWORD=123456
      - SPRING_JPA_HIBERNATE_DDL_AUTO=update
  postgres:
    image: 'postgres:13.1-alpine'
    container_name: db
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=123456
      - POSTGRES_DB=test_db
    # 如果需要从宿主机连接数据库,可以取消下面的注释
    # ports:
    #   - "5432:5432"

最后,执行docker-compose up --build(--build会强制重新构建Spring Boot镜像),应该就能正常启动两个服务了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:42:46