Ubuntu主机 + PostgreSQL 15.5 容器,容器内安装PostGIS
环境(Ubuntu主机 + PostgreSQL 15.5 容器),需要在 postgres15
容器内安装PostGIS。以下是具体步骤:
步骤1:进入PostgreSQL容器
docker exec -it postgres15 bash
步骤2:更新包管理器并安装PostGIS
# 容器内执行
apt-get update
apt-get install -y postgis postgresql-15-postgis-3
- 注意:若提示
E: Unable to locate package
,可能需要先安装postgresql-15
(尽管容器内已有):apt-get install -y postgresql-15
步骤3:连接数据库并启用PostGIS扩展
# 容器内执行(使用postgres用户连接)
psql -U postgres -d postgres
-- 在psql中执行
CREATE EXTENSION postgis;
-- 验证安装
SELECT PostGIS_Version();
完整示例流程
# 1. 进入容器
docker exec -it postgres15 bash
# 2. 安装PostGIS
root@5691ec6e96ee:/# apt-get update
root@5691ec6e96ee:/# apt-get install -y postgis postgresql-15-postgis-3
# 3. 连接数据库
root@5691ec6e96ee:/# psql -U postgres -d postgres
# 4. 创建扩展(在psql中)
postgres=# CREATE EXTENSION postgis;
CREATE EXTENSION
# 5. 验证
postgres=# SELECT PostGIS_Version();
postgis_version
------------------------------
3.3 USE_GEOS=1 USE_PROJ=1...
(1 row)
常见问题处理
-
权限问题:
若提示permission denied to create extension
,需以postgres
用户执行(容器内默认已使用该用户)。 -
包找不到:
尝试添加PostgreSQL官方源:echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - apt-get update
-
版本不匹配:
确保使用postgresql-15-postgis-3
(对应PostgreSQL 15)。
验证安装
安装成功后,可测试空间函数:
SELECT ST_AsText(ST_GeomFromText('POINT(1 1)'));
输出应为:
st_astext
-----------
POINT(1 1)
(1 row)
本文来自博客园,作者:祝有好收获,转载请注明原文链接:https://www.cnblogs.com/andychyi/p/18961354