尝试在docker文件中创buildpostgis会导致错误

这是我试图运行的命令。

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

你得到这个错误是因为当你试图运行pg_ctl start命令时,在postgres docker镜像里面没有创build数据库集群。

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

如果您正在运行postgres容器,并在容器重启时持续挂载数据卷,则可以只从psql shell运行一次该命令,或者也可以覆盖docker-entrypoint.sh脚本并添加自定义的脚本创buildpostgis扩展。