这是我正在尝试运行的命令。
我正在使用官方postgres码头图片。 我找不到任何关于'不是数据库集群目录'的信息
Step 7 : RUN pg_ctl start -w && createdb postgis_template -E UTF8 && psql -d postgis_template -c "create extension if not exists postgis;" && pg_ctl stop -w
---> Running in da5745cab398
pg_ctl: directory "/var/lib/postgresql/data" is not a database cluster directory
答案 0 :(得分:3)
您收到此错误是因为当您尝试运行pg_ctl start
命令时,postgres docker镜像中没有创建数据库群集。
当您基于映像运行docker容器时会创建数据库集群,因为initdb
二进制文件作为docker-entrypoint.sh
脚本的一部分被调用,该脚本被设置为ENTRYPOINT
for postgres容器。
ENTRYPOINT
initdb
。如果你正在运行你的postgres容器,其中挂载的数据卷在容器重启时是持久的,你可以从psql shell运行一次这个命令,或者你可以覆盖docker-entrypoint.sh
脚本并添加你自己的自定义一个创建postgis扩展名。