我使用docker-compose在docker容器中运行postgres,它没有出现任何问题,并且我能够连接到数据库。但是现在我想进入容器并执行postgis shp2pgsql来加载一个形状文件,但是这个命令似乎并不存在。下面是我的代码:
docker-compose.yaml
version: '3'
services:
db:
container_name: pg_container
image: postgis/postgis
restart: always
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_DB: test_db
volumes:
- ./data:/var/lib/postgresql/
- ./postgres_init:/postgres_init
ports:
- 5433:5433
networks:
- ch_ntw
networks:
ch_ntw:
driver: bridge
ipam:
config:
- subnet: 10.222.1.0/24进入容器:
docker exec -it pg_container bash使用psql顺利连接到数据库:
psql --host=pg_container --dbname=test_db --username=root但是,如果我尝试从bash调用shp2pgsql,我会得到以下结果:
shp2pgsql -s 2263:4326 postgres_init/nyct2010_15b/nyct2010.shp | psql -d test_db
bash: shp2pgsql: command not found我认为既然这是一个postgis容器,那么函数应该是可访问的,不是吗?
发布于 2021-08-02 17:33:19
shp2pgsql是一个客户端包。postgis/postgis映像仅是PostGIS服务器组件。如果要使用shp2pgsql或其他客户端工具,请将其本地安装在您的主机上,或安装在另一个容器中。
https://stackoverflow.com/questions/68625661
复制相似问题