【问题标题】:Postgres create extension command Docker containerPostgres 创建扩展命令 Docker 容器
【发布时间】:2020-02-20 22:39:24
【问题描述】:

我需要为在 Docker 中运行的 Postgres 实例创建扩展 - 特别是 postgis。我关注了其他 SO 帖子,包括 this one,但无济于事。

这是我目前所拥有的......

Dockerfile

FROM postgres
COPY ext-script.sql /docker-entrypoint-initdb.d

ext-script.sql

create extension pgcrypto;
create extension postgis;

Docker 运行命令

docker run -d -p 5432:54323 -e POSTGRES_PASSWORD=somepassword -e POSTGRES_USER=someuser -v postgres-data:/var/lib/postgresql/data --name dbcontainer dbimage

日志

docker logs dbcontainer
/usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/ext-script.sql
CREATE EXTENSION
2020-02-20 22:18:01.090 UTC [60] ERROR:  could not open extension control file "/usr/share/postgresql/12/extension/postgis.control": No such file or directory
2020-02-20 22:18:01.090 UTC [60] STATEMENT:  create extension postgis;
psql:/docker-entrypoint-initdb.d/ext-script.sql:2: ERROR:  could not open extension control file "/usr/share/postgresql/12/extension/postgis.control": No such file or directory

我错过了什么?

更新

我最终使用了postgis dockerhub image

只要你知道怎么做,一切都很容易:)

# Dockerfile
FROM postgis/postgis
COPY data.sql /docker-entrypoint-initdb.d

【问题讨论】:

    标签: postgresql docker dockerfile postgis pgcrypto


    【解决方案1】:

    PostGIS 与 pgcrypto 不同,它不包含在默认的 PostgreSQL 包中,它需要在调用 create extension postgis; 之前从某个源安装。在 docker hub here 上有一个相当不错的 PostGIS docker 容器。

    【讨论】:

    • 是的,我最终走上了这条路,但肯定有办法复制 postgis 二进制文件吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多