You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将本地Linux服务器的Postgres/PostGIS数据库接入Lizmap Docker项目

解决Lizmap Docker连接外部PostGIS数据库的配置方法

首先明确核心:你需要禁用docker-compose自带的PostGIS服务,转而配置连接公司本地的外部数据库,下面是具体步骤:

1. 修改docker-compose.yml,禁用自带PostGIS服务

找到postgis服务块,直接注释(或删除)整个服务定义,因为你不需要启动容器内的数据库:

# postgis:
#   image: 3liz/postgis:${POSTGIS_VERSION}
#   ... 其他原有配置行

2. 配置.env文件的数据库参数(二选一即可)

方案一:使用独立参数配置

在.env中添加/修改以下变量,替换为你的数据库实际用户名和密码:

LIZMAP_VERSION_TAG=3.6
LIZMAP_UID=1000
# 外部数据库配置
LIZMAP_DATABASE_HOST=10.7.99.122
LIZMAP_DATABASE_PORT=5678
LIZMAP_DATABASE_NAME=crypteo
LIZMAP_DATABASE_USER=你的数据库用户名
LIZMAP_DATABASE_PASSWORD=你的数据库密码

之前报错“database 'crypteo' does not exist”大概率是因为你没正确指定主机/端口,或者容器无法访问这个IP,也可能是变量名写错(必须用LIZMAP_前缀的这些变量)。

方案二:使用DATABASE_URL配置

在.env中添加正确格式的数据库URL,注意不要有空格,用户名和密码要正确:

LIZMAP_VERSION_TAG=3.6
LIZMAP_UID=1000
# 外部数据库URL,替换用户名和密码
DATABASE_URL=postgresql://你的用户名:你的密码@10.7.99.122:5678/crypteo

之前报错“database '-q' does not exist”是因为URL格式错误(比如包含了多余字符、空格,或者密码里有特殊字符没转义),如果密码有特殊符号(比如@、:、/),需要用URL编码(例如@换成%40)。

3. 关键注意事项

  • 网络连通性:确保Docker容器所在的网络能访问10.7.99.122的5678端口,检查公司服务器的防火墙规则,是否允许容器所在IP段的访问。
  • 数据库权限:用于连接的数据库用户需要具备crypteo数据库的连接权限,以及创建表、序列等权限(Lizmap初始化时需要创建自身的元数据表)。
  • 启动验证:运行docker-compose up -d lizmap qgis-server(只启动需要的服务,不要带postgis),然后查看容器日志docker logs lizmap,确认连接是否成功。

内容的提问来源于stack exchange,提问作者Xeochill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 13:57:22