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
One Solution collect form web for “Trying to create postgis inside docker file gives the error”
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.
- See https://github.com/docker-library/postgres/blob/cb70a79c1a8248d7e0db89d79dfbd08dd481be7f/9.4/Dockerfile#L47 for the line that sets the script as the
- See https://github.com/docker-library/postgres/blob/cb70a79c1a8248d7e0db89d79dfbd08dd481be7f/9.4/docker-entrypoint.sh#L11 for the line that calls
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.