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’

  • Is the data in unbound docker container volumes committed to the image?
  • How can I grab exposed port from inspecting docker container?
  • Spotify docker-gc: prevent auto stop after first run
  • Jenkins Job Builder not creating publishers
  • add PPA failed in Docker container
  • Docker stuck after running background process and detach it
  • 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
    

  • What is the proper way to “combine” Docker images?
  • Typo3 Neos performance for css and js
  • docker exec VS docker --rm -d --rm --volumes-from
  • in ssh shell script check for docker version
  • docker machine (virtualbox vm) export container port to host machine fail
  • How do I integrate my git PHP repo into an official Docker Hub container?
  • 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.

    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.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.