问题描述
使用 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
问题描述
使用 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
但 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