如果我在文件中创建pg_cron扩展名,则 dockerdocker-entrypoint-initdb.d/init.sql
映像无法运行,docker logs <id>
只会显示“没有这样的容器”。这是相关的 .sql 片段:
CREATE DATABASE my_database;
\c my_database;
CREATE EXTENSION IF NOT EXISTS postgis CASCADE;
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
CREATE EXTENSION IF NOT EXISTS pg_cron CASCADE;
psql --file
但是,如果我在 docker run 命令完成后创建 pg_cron 扩展(即删除上面的最后一行并在完成后单独运行它docker run
),则扩展创建成功(不管怎样,postgis 和 timescaledb 扩展似乎都很好)。
有什么原因我不能从中创建 pg_cron 扩展docker-entrypoint-init.d
?有正确的地方吗?
我的 docker run 命令如下:
docker run -d \
--name my_container --rm \
-p 5432:5432 \
-clog_line_prefix="%m [%p]: [%l-1] %u@%d" \
-clog_error_verbosity=VERBOSE \
-cshared_preload_libraries='timescaledb,pg_cron' \
-ccron.database_name='my_database'