我正在尝试创建postgis扩展到postgres docker图像。Dockerfile:
FROM postgres:9.6.4
RUN apt-get clean \
&& apt-get update \
&& apt-get -y install postgis \
&& rm -rf /var/lib/apt/lists/*
COPY ./scripts/postgis.sh /docker-entrypoint-initdb.d/postgis.shpostgis.sh:
#!/bin/sh
for DB in $(psql -t -c "SELECT datname from pg_database where datname = 'backend'"); do
echo "Loading PostGIS extensions into $DB"
"${psql[@]}" --dbname="$DB" <<-'EOSQL'
CREATE EXTENSION IF NOT EXISTS postgis;
EOSQL
done我将user和password配置为file.yaml。我可以访问数据库,但是并没有创建扩展。我遵循了一些问题中提到的一些解决方案,这些问题类似于这个问题,但它们没有解决我的问题。我提交或错过的错误是什么?
发布于 2018-02-10 00:38:01
您安装的postgis包实际上并不包含postgis扩展。该软件包的内容包括:
root@934775e6cf67:/# dpkg -L postgis
/.
/usr
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/raster2pgsql.1.gz
/usr/share/man/man1/shp2pgsql.1.gz
/usr/share/man/man1/pgsql2shp.1.gz
/usr/share/doc
/usr/share/doc/postgis
/usr/share/doc/postgis/changelog.Debian.gz
/usr/share/doc/postgis/NEWS.Debian.gz
/usr/share/doc/postgis/changelog.gz
/usr/share/doc/postgis/copyright
/usr/share/doc/postgis/README.Debian
/usr/share/doc/postgis-doc
/usr/share/doc/postgis-doc/README.postgis.gz
/usr/bin
/usr/bin/pgsql2shp
/usr/bin/raster2pgsql
/usr/bin/shp2pgsql因此,这些是postgis的支持工具,但不是扩展本身。您需要安装postgresql-9.6-postgis-2.4包。一旦安装完成,我就可以成功地运行create extension postgis命令。
https://stackoverflow.com/questions/48709878
复制相似问题