【问题标题】:Docker and Postgis - How do I access shp2pgsql inside my docker container?Docker 和 Postgis - 如何在我的 docker 容器中访问 shp2pgsql?
【发布时间】: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


    【解决方案1】:

    shp2pgsql 是一个客户端包。 postgis/postgis 图像仅是 PostGIS 服务器组件。如果您想使用shp2pgsql 或其他客户端工具,请将它们安装在您的主机本地或其他容器中。

    【讨论】:

    • 谢谢,我选择在另一个容器中构建它。
    猜你喜欢
    • 2019-06-10
    • 2023-02-17
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 2016-05-05
    • 2017-02-25
    • 1970-01-01
    相关资源
    最近更新 更多