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

Docker Compose未创建cucurbit数据库,SpringBoot连接PostgreSQL报错

Docker Compose部署SpringBoot+PostgreSQL数据库不存在问题排查

你的Docker Compose文件存在两个核心问题,导致cucurbit数据库无法正常创建:

1. PostgreSQL服务的command配置错误

PostgreSQL官方镜像的默认启动逻辑会读取POSTGRES_DB、POSTGRES_USER等环境变量,自动完成数据库和用户的初始化。但你自定义的command参数完全覆盖了这个初始化流程,而且命令本身语法错误:

command: postgres -c 'create database cucurbit' dbname=cucurbit

-c是Postgres启动时设置配置参数的选项,不能直接执行SQL语句;dbname=cucurbit也不是合法的启动参数。这个错误命令会导致Postgres跳过自动创建数据库的步骤,直接启动服务,自然不会生成cucurbit数据库。

2. depends_on未保证数据库服务就绪

depends_on: [db]仅能保证cucurbit-db容器先于后端启动,但无法确保PostgreSQL服务完全初始化完成。后端启动时可能数据库还处于启动初始化阶段,此时连接会失败。


修正后的Docker Compose文件

version: '2'

services:
  app:
    image: 'docker-spring-boot-postgres:latest'
    build:
      context: .
    container_name: cucurbit-backend
    depends_on:
      - db
    environment:
      - CUCURBIT_ENVIRONMENT_PROFILE=development
      - CUCURBIT_DATABASE_URL=jdbc:postgresql://cucurbit-db:5432/cucurbit
      - CUCURBIT_DATASOURCE_USERNAME=postgres
      - CUCURBIT_DATASOURCE_PASSWORD=password
      - CUCURBIT_EMAIL_SENDER_USERNAME=noreply.cucurbit@gmail.com
      - CUCURBIT_EMAIL_SENDER_PASSWORD=wakeuptellme1234.
      - CUCURBIT_EMAIL_NOTIFICATION_SEND_TO=jobskreya@gmail.com
    expose:
      - 8080
    ports:
      - "8080:8080"  # 修正端口映射格式,需遵循「本地端口:容器端口」
    restart: on-failure  # 添加自动重启,应对数据库未就绪的连接失败情况

  db:
    image: 'postgres:13.1-alpine'
    container_name: cucurbit-db
    hostname: cucurbit-db
    expose:
      - '5432'
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=cucurbit
    # 移除错误的command配置,使用镜像默认初始化逻辑
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -d cucurbit"]
      interval: 5s
      timeout: 5s
      retries: 5

额外优化说明

  • 移除PostgreSQL服务的错误command配置,让镜像自动处理数据库初始化
  • 为后端服务添加restart: on-failure,在数据库未就绪导致连接失败时自动重启,直到连接成功
  • 为PostgreSQL服务添加healthcheck,精确检测数据库服务是否就绪
  • 修正端口映射格式,确保本地端口与容器端口的映射关系正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:07:21