Qgis - 从 docker 镜像连接到 SQLServer

问题描述

按照 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)。有没有人在这样的设置中成功?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)