Public | Automated Build

Last pushed: 4 days ago
Short Description
PostGIS 2.3 on Postgres 9. Based on the official Postgres container.
Full Description

mdillon/postgis

The mdillon/postgis image provides a Docker container running Postgres 9 with PostGIS 2.3 installed. This image is based on the official postgres image and provides variants for each version of Postgres 9 supported by the base image (9.2-9.6).

This image ensures that the default database created by the parent postgres image will have the following extensions installed:

  • postgis
  • postgis_topology
  • fuzzystrmatch
  • postgis_tiger_geocoder

Unless -e POSTGRES_DB is passed to the container at startup time, this database will be named after the admin user (either postgres or the user specified with -e POSTGRES_USER). If you would prefer to use the older template database mechanism for enabling PostGIS, the image also provides a PostGIS-enabled template database called template_postgis.

Usage

In order to run a basic container capable of serving a PostGIS-enabled database, start a container as follows:

docker run --name some-postgis -e POSTGRES_PASSWORD=mysecretpassword -d mdillon/postgis

For more detailed instructions about how to start and control your Postgres container, see the documentation for the postgres image here.

Once you have started a database container, you can then connect to the database as follows:

docker run -it --link some-postgis:postgres --rm postgres \
    sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" -p "$POSTGRES_PORT_5432_TCP_PORT" -U postgres'

See the PostGIS documentation for more details on your options for creating and using a spatially-enabled database.

Docker Pull Command
Owner
mdillon
Source Repository

Comments (13)
boozedog
a month ago

How about Alpine Linux? :-)

augnustin
2 months ago

Not working for me. :(
I get:

ActiveRecord::StatementInvalid: PG::UndefinedFile: ERROR:  could not open extension control file "/usr/share/postgresql/9.6/extension/postgis.control": No such file or directory
: CREATE EXTENSION IF NOT EXISTS "postgis"
PG::UndefinedFile: ERROR:  could not open extension control file "/usr/share/postgresql/9.6/extension/postgis.control": No such file or directory
smills
4 months ago

Just re-deployed the 9.5 tagged image to my server and it failed to run properly due to the postgis extension being updated. How do I point to a specific version of postgis to stop that happening in future? It seems the tags only allow postgres version to be specified.

datarella
a year ago

Hi, I have tried to build from source but got errors

E: Version '2.1.7+dfsg-3~94.git954a8d0.pgdg80+1' for 'postgresql-9.3-postgis-2.1' was not found
E: Version '2.1.7+dfsg-3~94.git954a8d0.pgdg80+1' for 'postgis' was not found

seems to be a package management issue.

mdillon
2 years ago

@pkorduan Unfortunately no. I think that would be a great thing to have, but this would need to be taken up with the PostGIS maintainers: http://postgis.net/support

pkorduan
2 years ago

Thanks for this docker image. I use it for a web mapping application. Therefore I create a container from this image and link it into my web server container. Everything works fine so far, but how can my web application, running inside the web server container have access to the loader shp2pgsql and pgsql2shp in the database container? As far as I can see I have to install the loader in my web server container. But apt-get install postgis will also install all the other dependencies postgis and postgresql which is allready in the postgis container. Isn't it redundant to do so. Do anyone know a debian package only with the loader?

mdillon
2 years ago

@rarkins That looks like a Docker issue caused by an unexpected JSON response from the Docker Registry. As far as I know, there isn't any Go code in Postgres or Postgis.

rarkins
2 years ago

FYI we updated a dev machine to docker 1.7.0 to test things and found a strange failure for this image:

Status: Downloaded newer image for mdillon/postgis:9.4
json: cannot unmarshal number into Go value of type string

We've rolled back and not had time to test further. We use docker-compose so not sure if that's part of the problem and "vanilla" docker would work instead.

mdillon
2 years ago

Thanks @homme. I've updated the latest tag to point to 9.4-2.1 instead of 9.3-2.1.

homme
2 years ago

Just a note that /9.4-2.1 should be tagged latest rather than /9.3-2.1.