user1685095
user1685095

Reputation: 6121

Trying to create postgis inside docker file gives the error

Here is the command that I'm trying to run.

I'm using official postgres docker image. I can't find any info about 'is not a database cluster directory'

Step 7 : RUN pg_ctl start -w &&     createdb postgis_template -E UTF8 &&    psql -d postgis_template -c "create extension if not exists postgis;" &&    pg_ctl stop -w
     ---> Running in da5745cab398
    pg_ctl: directory "/var/lib/postgresql/data" is not a database cluster directory

Upvotes: 2

Views: 3292

Answers (1)

Chris McKinnel
Chris McKinnel

Reputation: 15092

You're getting this error because there is no database cluster created inside the postgres docker image when you're attempting to run the pg_ctl start command.

The database cluster is created when you run a docker container based on the image, as the initdb binary is called as part of the docker-entrypoint.sh script that is set as the ENTRYPOINT for the postgres container.

If you're running your postgres container with a mounted data volume that is persistent across container restarts, you can just run this command once from a psql shell, or you can override the docker-entrypoint.sh script and add your own custom one that creates the postgis extension.

Upvotes: 5

Related Questions