Postgresql 在docker compose中为postgres的initdb使用环境变量

Postgresql 在docker compose中为postgres的initdb使用环境变量,postgresql,docker,environment-variables,Postgresql,Docker,Environment Variables,我希望使用*.sql脚本将我的基本数据库构建在/docker entrypoint initdb.d/ sed -i "s/__CRM_SCHEMA_OWNER__/$CRM_SCHEMA_OWNER/g" /mydata/01_create_crm.sql 我的SQL文件如下所示: create schema crm; alter schema crm owner to ${CRM_SCHEMA_OWNER}; .... 当然,使用psql导入不会解析变量。 我现在的问题是,如何使用这样的

我希望使用
*.sql
脚本将我的基本数据库构建在
/docker entrypoint initdb.d/

sed -i "s/__CRM_SCHEMA_OWNER__/$CRM_SCHEMA_OWNER/g" /mydata/01_create_crm.sql
我的SQL文件如下所示:

create schema crm;
alter schema crm owner to ${CRM_SCHEMA_OWNER};
....
当然,使用psql导入不会解析变量。 我现在的问题是,如何使用这样的环境变量

我尝试过在entrypoint目录中使用一个.sh文件,用环境数据替换
.sql
文件中的字符串,但我总是得到:

db|U 1| sed:无法打开临时文件/docker-entrypoint-initdb.d/sedjKqYgZ:权限被拒绝

我甚至试过

COPY sql/*.sql /mydata/
RUN ln -sf /mydata/*.sql /docker-entrypoint-initdb.d/
在docker文件和
/docker entrypoint initdb.d/

sed -i "s/__CRM_SCHEMA_OWNER__/$CRM_SCHEMA_OWNER/g" /mydata/01_create_crm.sql
但这也不起作用

关于如何使用env变量设置数据库,有什么建议吗

谢谢
Fritz

你有什么解决办法吗?@AshrafulIslam抱歉,没有,我没有进一步采取这种方法。不幸的是,我不得不提前进行替换,并将数据硬编码保存在文件中。非常感谢。