如何在docker中为postgresql创buildpostgis扩展?

尝试创buildPostgis扩展时遇到错误。

这是我的dockerfile的样子。

from postgres RUN apt-get update && apt-get install postgis -y ADD /create_postgis_extension.sh /docker-entrypoint-initdb.d/ 

create.bla-bla..sh

 #!/bin/sh POSTGRES="gosu postgres postgres" $POSTGRES --single -E <<EOSQL CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology; EOSQL 

这是运行图像时的错误

后端>语句:CREATE EXTENSION postgis;

错误:typesaddbandarg []不存在语句:CREATE EXTENSION postgis;

后端>语句:CREATE EXTENSION postgis_topology;

后端>错误:未安装必需的扩展名“postgis”

我显然做错了什么,但我不知道是什么。 为什么postgis没有安装,如果我已经安装postgis与apt-get。

我使用的是CentOS而不是Debian,但遇到了同样的问题。 解决scheme基本上是使用pg_ctl来启动/停止postgres。

 sudo -u postgres pg_ctl start -w -D ${PGDATA} sudo -u postgres createdb postgis_template -E UTF8 sudo -u postgres psql -d postgis_template -c "create extension if not exists postgis;" sudo -u postgres pg_ctl stop -w