小编fri*_*itz的帖子

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

我想使用*.sql放置的脚本构建我的基本数据库/docker-entrypoint-initdb.d/

我的 SQL 文件如下所示:

create schema crm;
alter schema crm owner to ${CRM_SCHEMA_OWNER};
....
Run Code Online (Sandbox Code Playgroud)

当然,使用 psql 导入并不能解析该变量。我现在的问题是,如何使用这样的环境变量?

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

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

我什至尝试过

COPY sql/*.sql /mydata/
RUN ln -sf /mydata/*.sql /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)

在 Dockerfile 和我的.sh脚本中/docker-entrypoint-initdb.d/

sed -i "s/__CRM_SCHEMA_OWNER__/$CRM_SCHEMA_OWNER/g" /mydata/01_create_crm.sql
Run Code Online (Sandbox Code Playgroud)

但这也行不通。

关于如何使用环境变量设置数据库有什么建议吗?

谢谢弗里茨

postgresql environment-variables docker

8
推荐指数
1
解决办法
2628
查看次数

标签 统计

docker ×1

environment-variables ×1

postgresql ×1