将docker容器中的QGIS项目连接到Postgres+;将GIS放在另一个docker容器中
有一个qgis项目,它有一个连接到数据库并从中获取数据的层。当项目在Qgis桌面中打开时-一切都很完美-您可以在postgres(localhost:5432)中更新数据-图层将在地图上更新 有一个QGIS服务器是在docker容器中启动的。我将该项目放在qgis服务器docker容器(/etc/qgisserver)中,但该项目无法设置与另一个docker容器中的数据库的连接(localhost:5432) 我不明白如何让qgis服务器在容器内引用其localhost:5432,但却访问主机的localhost:5432(在这里可以访问来自另一个容器的postgres) 我曾尝试过这样做,但没有成功:将docker容器中的QGIS项目连接到Postgres+;将GIS放在另一个docker容器中,docker,docker-compose,postgis,qgis,Docker,Docker Compose,Postgis,Qgis,有一个qgis项目,它有一个连接到数据库并从中获取数据的层。当项目在Qgis桌面中打开时-一切都很完美-您可以在postgres(localhost:5432)中更新数据-图层将在地图上更新 有一个QGIS服务器是在docker容器中启动的。我将该项目放在qgis服务器docker容器(/etc/qgisserver)中,但该项目无法设置与另一个docker容器中的数据库的连接(localhost:5432) 我不明白如何让qgis服务器在容器内引用其localhost:5432,但却访问主机的
services:
app_postgres:
image: kartoza/postgis:latest
container_name: app_postgres
volumes:
- ~/volumes/jhipster/app/postgresql/:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=app
- POSTGRES_PASSWORD=app
- POSTGRES_DBNAME=app
- POSTGRES_MULTIPLE_EXTENSIONS=postgis,hstore,postgis_topology,postgis_raster,pgrouting
ports:
- 5432:5432
qgisserver:
image: camptocamp/qgis-server:latest
volumes:
- ~/qgis/projects:/etc/qgisserver
links:
- app_postgres:db
ports:
- 8380:80
depends_on:
- app_postgres
我是这样成功的:
- 我已经连接了桥网络中的QGIS和Postgis容器
- 将显式IP地址分配给Postgis和Qgis容器
- 我已经更改了QGIS容器中的/etc/hosts文件,以便从QGIS容器调用“localhost”将导致Postgis容器
version: '3.4'
services:
db:
image: kartoza/postgis:latest
container_name: docker_app_postgres
volumes:
- ~/volumes/jhipster/app/postgresql/:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=app
- POSTGRES_PASSWORD=app
- POSTGRES_DBNAME=app
- POSTGRES_MULTIPLE_EXTENSIONS=postgis,hstore,postgis_topology,postgis_raster,pgrouting
networks:
bridge_geo:
ipv4_address: 172.28.1.1
ports:
- 5432:5432
qgisserver:
image: camptocamp/qgis-server:latest
container_name: docker_app_qgis
volumes:
- ~/qgis/projects:/etc/qgisserver
networks:
bridge_geo:
ipv4_address: 172.28.1.2
extra_hosts:
localhost: 172.28.1.1
ports:
- 8380:80
depends_on:
- db
networks:
bridge_geo:
ipam:
driver: default
config:
- subnet: 172.28.0.0/16