Reputation: 6121
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
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.
ENTRYPOINT
initdb
.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