我们一直在使用以下docker-compose.yml
来说明PostgreSQL(另一个修订的)依赖关系。
version: '3.5'
services:
postgres132:
image: postgres:13.2
restart: always
environment:
POSTGRES_PASSWORD: 'user'
POSTGRES_USER: 'pass'
POSTGRES_DB: 'db'
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- 5432:5432
现在,我需要在同一个容器中添加PostGIS支持。这可能吗?我该怎么做呢?我对Postgres和PostGIS都是新手,所以请原谅我对这两个东西的无知。
2条答案
按热度按时间gdx19jrr1#
为什么不使用Dockerfile specfic来添加postgis?
将“image”属性更改为“build”属性以链接Dockerfile。
你的docker-compose.yml应该看起来像这样:
然后创建一个名为
Dockerfile-db
的文本文件,路径与docker-compose.yml相同,内容如下:请注意,您可以指定PostGIS版本以及Postgresql版本。
这样,您就可以通过扩展
Dockerfile-db
在容器中安装所需的所有内容注意:你的数据库容器现在有PostGIS,但是我们需要在数据库中创建扩展,为此你应该运行
CREATE EXTENSION postgis;
,如果你使用卷,你只需要做一次。额外好处:一种方法是准备一个名为db/的目录,其中包含init.sql文件,然后编写类似
CREATE EXTENSION postgis ;
的内容,并将其作为docker compose中的卷持久化,这样docker compose的最终格式将是:这样postgresql将运行此脚本并创建扩展
f87krz0w2#
https://hub.docker.com/r/postgis/postgis
为什么不在上面的链接中使用基于PostgreSQL官方图片的PostGIS图片?