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

PostgreSQL默认数据库修改失败:环境变量与SQL脚本未生效求助

问题解决:PostgreSQL Docker Compose初始化失效

根因分析

Postgres官方Docker镜像的初始化逻辑(包括应用POSTGRES_DB环境变量、执行/docker-entrypoint-initdb.d/下的脚本)仅在首次初始化数据存储目录时触发。如果你的/custom/mount目录之前已经存储过Postgres数据(比如之前启动过容器未清理),镜像会直接跳过初始化步骤,加载已有数据。

解决步骤

  1. 停止并移除现有容器
docker-compose down
  1. 清理自定义挂载目录的旧数据

注意:此操作会彻底删除该目录下的所有数据,请确认数据无保留价值后执行

sudo rm -rf /custom/mount/*
  1. 重新启动容器
docker-compose up -d

验证方法

  • 通过Adminer连接数据库,检查是否存在名为ecommerce的数据库
  • 查看容器日志确认初始化流程执行:
docker-compose logs db

日志中应包含类似以下内容:

database "ecommerce" will be created
running /docker-entrypoint-initdb.d/sql_script.sql

额外注意事项

如果脚本仍未执行,检查本地sql_script.sql的文件权限,确保容器内postgres用户可读取。必要时可在docker-compose.yml的db服务中添加权限修正命令:

services:
  db:
    # ... 原有配置 ...
    command: bash -c "chmod 644 /docker-entrypoint-initdb.d/sql_script.sql && docker-entrypoint.sh postgres"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:35:18