Skip to content

docker-compose 部署时 PostgreSQL 初始化失败 #155

@zamelee

Description

@zamelee

问题描述
使用 docker-compose up -d 部署时,PostgreSQL 容器启动失败,导致主应用无法运行。

错误日志
bash
docker logs mumuainovel-postgres

关键错误:

text
psql:/docker-entrypoint-initdb.d/init.sql: error: could not read from input file: Is a directory
问题原因
docker-compose.yml 中挂载了初始化脚本:

yaml

  • ./backend/scripts/init_postgres.sql:/docker-entrypoint-initdb.d/init.sql:ro
    但 init_postgres.sql 实际是一个目录而不是文件,导致 PostgreSQL 无法读取。

临时解决办法

删除错误的目录
rm -rf backend/scripts/init_postgres.sql

创建目录和空文件
mkdir -p backend/scripts
echo "-- Empty initialization file" > backend/scripts/init_postgres.sql

重启容器
docker-compose down -v
docker-compose up -d

建议修复
在仓库中附带一个默认的 init_postgres.sql 文件,而不是目录

或在文档中说明需要手动创建该文件

环境:Windows 11 + Docker Desktop 4.74.0 pulled by dockhub

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions