【发布时间】:2021-10-08 01:07:59
【问题描述】:
我正在使用 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 容器,那么该功能应该可以访问吗?
【问题讨论】:
标签: postgresql docker docker-compose postgis