Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Start postgres in Dockerfile

When I use the postgres docker image, I run

docker run --name mydb -e POSTGRES_PASSWORD=password -d postgres

And I see a container running.

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                       NAMES
a36b98h8982a        postgres            "docker-entrypoint.s…"   36 minutes ago      Up 36 minutes       5432/tcp                    mydb

So I make my Dockerfile because I want to initialize my database

FROM postgres:latest

COPY pg-setup.sql /docker-entrypoint-initdb.d/

CMD ['postgres']

But when I use the Dockerfile the container just exits immediately. How do I get it to run like the postgres image?

like image 792
Jack Avatar asked Jan 15 '19 02:01

Jack


1 Answers

If your SQL file pg-setup.sql is no problem, you can just change your Dockerfile like this:

FROM postgres:latest
COPY pg-setup.sql /docker-entrypoint-initdb.d/

Take a look at another case. It will be helpful.

like image 70
Charles Xu Avatar answered Oct 19 '22 07:10

Charles Xu