Reputation: 307
I have created a docker container for postgres using following link .Have few pre existing postgres scripts which i need to run it inside the container .
Docker Image link- https://registry.hub.docker.com/_/postgres/
Tried with following command still no luck
ADD runsqlscripts.sh /root/runsqlscripts.sh
CMD ["postgres" "/root/runsqlscripts.sh" ]
Upvotes: 0
Views: 2889
Reputation: 7275
See a previous answer of mine for the best way to do this.
"correct" way to manage database schemas in docker
The problem is that you can't run scripts immediately with the Dockerfile because Postgres won't be running when the commands are issued.
They recommend you run scripts from the docker-entrypoint.sh
script, which will look at the ./docker-entrypoint-initdb.d
directory for scripts that should be run after Postgres has started.
Upvotes: 1
Reputation: 1456
WORKDIR /workspace
CMD ["postgres", "/root/runsqlscripts.sh" ]
docker run -v /root:/workspace IMAGE_ID
If you want to map a host directory to your container in a given path, you need to call -v /host:/container
in your container creation. Dockerfile can map directory but to a random path like /dev/disk/by-uuid/af414ad8-9936-46cd-b074-528854656fcd
.
Upvotes: 0