Qgis - 从 docker 镜像连接到 SQLServer

时间:2021-05-06 18:12:11

标签: sql-server docker nginx qgis

按照 https://docs.qgis.org/3.16/en/docs/server_manual/containerized_deployment.html 上的教程,我已经在 docker 中设置了 qgis 服务器和 nginx。

它适用于他们的示例中指定的示例文件。但是,一旦我将自己的 QgisProjectFile 与连接到 SQLSERVER 数据库的层一起使用,我就会收到以下错误:

<ServerException>Layer(s) not valid</ServerException>

当我查看 qgis 中的内部错误时,我可以清楚地看到只有带有 dbConnection 的层被评估为无效。

这些层在 docker 容器外的我的机器上运行良好。我还尝试了多次更改主机参数:

host.docker.internal:1433
host.docker.internal,1433
192.168.1.233:1433
192.168.1.233,1433
192.168.1.233\sqlexpress

等等。

<layer-tree-layer providerKey="mssql" id="MY_ID" expanded="0" legend_exp="" source="dbname='MY_DB_NAME' host=192.168.1.233,1433 user='MY_USER' srid=2056 type=Point disableInvalidGeometryHandling='0' table=&quot;AUE&quot;.&quot;TABLENAME&quot;(ADR_ELP_GEOMETRY) sql =" checked="Qt::Unchecked" name="TABLENAME">

用于挂载容器的 Docker 命令:

docker run -d --rm --name qgis-server --net=qgis --hostname=qgis-server  -v ${PWD}/data:/data:ro -p 5555:5555  -e "QGIS_PROJECT_FILE=/data/OneAue_DB.qgs"  qgis-server

docker run -d --rm --name nginx --net=qgis --hostname=nginx -v ${PWD}/nginx.conf:/etc/nginx/conf.d/default.conf:ro -p 8080:80 nginx:1.13

我也成功 ping 我自己的电脑 (192.168.1.233)。有没有人在这样的设置中成功?

0 个答案:

没有答案