【发布时间】:2020-05-15 12:52:40
【问题描述】:
我希望使用 *.sql 脚本构建我的基本数据库,并将其放在 /docker-entrypoint-initdb.d/ 中
我的 SQL 文件如下所示:
create schema crm;
alter schema crm owner to ${CRM_SCHEMA_OWNER};
....
当然,使用 psql 导入并不能解析变量。 我现在的问题是,我怎样才能使用这样的环境变量?
我尝试在入口点目录中也有一个 .sh 文件,用环境数据替换 .sql 文件中的字符串,但我总是得到:
db_1 | sed:无法打开临时文件 /docker-entrypoint-initdb.d/sedjKqYgZ:权限被拒绝
我什至尝试过
COPY sql/*.sql /mydata/
RUN ln -sf /mydata/*.sql /docker-entrypoint-initdb.d/
在 Dockerfile 和我的 .sh 脚本中 /docker-entrypoint-initdb.d/
sed -i "s/__CRM_SCHEMA_OWNER__/$CRM_SCHEMA_OWNER/g" /mydata/01_create_crm.sql
但这也没有用。
关于如何使用环境变量设置数据库的任何建议?
谢谢 弗里茨
【问题讨论】:
-
你有什么解决办法吗?
-
@AshrafulIslam 抱歉,不,我没有进一步采用这种方法。不幸的是,我不得不预先进行替换并将数据硬编码在文件中。
-
好的。谢谢
标签: postgresql docker environment-variables