postgresql - Postgres创建扩展命令Docker容器

标签 postgresql docker dockerfile postgis pgcrypto

我需要为在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

最佳答案

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

关于postgresql - Postgres创建扩展命令Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60329587/

相关文章:

php - 使用 Postgresql 的 Symfony 2

regex - 如何在 Postgresql 中提取子字符串模式

docker ,MYSQL_ROOT_PASSWORD 不起作用

docker - 如何为 Docker 容器分配主机名?

docker - docker-将文件复制到根目录时构建失败

python - 当 BEGIN 在自动提交模式下的连接上运行时,Postgres 会做什么?

postgresql - 在 PostgreSQL 9.2 中重命名 hstore 键

docker - 启动预构建的Docker镜像后运行命令的最佳实践

容器启动时应用程序错误地解析了 Docker 别名

docker - 如何在没有dockerhub的情况下获取可转移的docker compose堆栈