试图在docker文件中创建postgis会产生错误

时间:2015-07-13 22:55:49

标签: postgresql docker

这是我正在尝试运行的命令。

我正在使用官方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

1 个答案:

答案 0 :(得分:3)

您收到此错误是因为当您尝试运行pg_ctl start命令时,postgres docker镜像中没有创建数据库群集。

当您基于映像运行docker容器时会创建数据库集群,因为initdb二进制文件作为docker-entrypoint.sh脚本的一部分被调用,该脚本被设置为ENTRYPOINT for postgres容器。

如果你正在运行你的postgres容器,其中挂载的数据卷在容器重启时是持久的,你可以从psql shell运行一次这个命令,或者你可以覆盖docker-entrypoint.sh脚本并添加你自己的自定义一个创建postgis扩展名。