如何在docker中为postgresql创建postgis扩展?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在docker中为postgresql创建postgis扩展?相关的知识,希望对你有一定的参考价值。

我在尝试创建postgis扩展时遇到错误。

这是我的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;

错误:类型addbandarg []不存在语句:CREATE EXTENSION postgis;

backend>声明:CREATE EXTENSION postgis_topology;

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

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

答案

我使用的是CentOS而不是Debian,但遇到了同样的问题。解决方案基本上归结为使用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

以上是关于如何在docker中为postgresql创建postgis扩展?的主要内容,如果未能解决你的问题,请参考以下文章

使用docker compose部署postgreSQL数据库

如何在 postgresql 中为数据库创建用户? [关闭]

如何在 PostgreSQL 9.5 中为“int”数据类型设置大小限制

如何在 PostgreSQL 9.5 中为“int”数据类型设置大小限制

如何在 docker 中为 debian 创建声音设备?

Docker启动PostgreSQL时创建多个数据库