docker 安装pgsql并带postgis扩展插件

拉取镜像
这个镜像是postgresql版本是11.5
postgis的版本是2.8
docker pull kartoza/postgis:11.5-2.8



 docker run --name postgres -e ALLOW_IP_RANGE=0.0.0.0/0 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123456  -e POSTGRES_MULTIPLE_EXTENSIONS=postgis,pgrouting  -v /home/pgdata:/var/lib/postgresql/ -p 54321:5432 -d kartoza/postgis:11.5-2.8

 -v /home/pgdata:/var/lib/postgresql/ 数据持久化 把数据挂载到宿主机的home/pgdata下
 -e POSTGRES_PASSWORD=123456,设置环境变量,指定数据库的登录口令为123456
 -e POSTGRES_MULTIPLE_EXTENSIONS='postgis,pgrouting' 启用的插件,还有其他的postgis,hstore,postgis_topology,postgis_raster,pgrouting
 -p 54321:5432,端口映射将容器的5432端口映射到外部机器的54321端口;
-e ALLOW_IP_RANGE=0.0.0.0/0,表示允许所有ip访问,如果不加,则只能本机IP访问

可参考kartoza/postgis

在指定数据库下执行下面语句

CREATE EXTENSION postgis

验证:执行下面语句不报错即可

SELECT ST_SetSRID(ST_Point(-87.71,43.741),4326),ST_GeomFromText('POINT(-87.71 43.741)',4326)

也可以自己创建想要版本的postgresql

git clone git://github.com/kartoza/docker-postgis
git checkout branch_name

docker build --build-arg POSTGRES_MAJOR_VERSION=13 --build-arg POSTGIS_MAJOR=3 -t kartoza/postgis:POSTGRES_MAJOR_VERSION .

#timescaledb
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE
#timescaledb 版本
SELECT default_version, installed_version FROM pg_available_extensions WHERE name = ‘timescaledb’;

CREATE EXTENSION postgis

CREATE EXTENSION pgrouting


版权声明:本文为weixin_43784341原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。