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

Docker中PostgreSQL启动报错求助及已尝试排查方案

Docker容器运行PostgreSQL报错求助

每次启动PostgreSQL容器都会报错,导致无法使用数据库,严重阻碍开发流程。

已尝试多项排查步骤:验证Docker配置、检查端口映射冲突、确保PostgreSQL容器镜像为最新版本。

相关配置文件

docker-compose.yml

version: '3.8'
services:
  # Node应用配置
  # Docker Compose启动该容器时,会自动使用当前目录的Dockerfile进行配置
  app:
    build: .
    depends_on:
      # 应用依赖数据库,确保数据库优先启动
      - postgres
    ports:
      - '8080:8080'
    volumes:
      # 将当前项目目录映射到容器内的工作目录
      - ./:/usr/src/app/
      # node_modules 卷挂载的解决方案,避免本地node_modules被覆盖
      - /usr/src/app/node_modules

  # PostgreSQL数据库容器配置
  # 注意`postgres`这个名称很重要,Node应用中指定`host: "postgres"`时,会通过Docker网络解析到该容器地址
  postgres:
    image: postgres:14.1-alpine
    restart: always
    environment:
      # 配置数据库连接所需的环境变量,Node应用会使用这些值连接数据库
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=urbanize
    ports:
      # PostgreSQL标准端口映射
      - '5432:5432'
    volumes:
      # PostgreSQL容器启动时会执行`docker-entrypoint-initdb.d`目录下的脚本,将本地初始化脚本挂载到该目录
      - ./database-seed.sql:/docker-entrypoint-initdb.d/database-seed.sql

环境变量中的PostgreSQL连接字符串

POSTGRES_CONNECTION_STRING="postgresql://postgres:password@localhost:5432/urbanize"

Dockerfile

FROM node:18

WORKDIR /app

COPY package.json yarn.lock ./
RUN yarn install

COPY . .

EXPOSE 5002

CMD ["yarn", "dev"]

报错截图

报错截图

已尝试的解决步骤

  • 在终端中终止postgres服务
  • 登录Docker
  • 修改postgres配置文件以允许所有端口连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:09:56