skip to Main Content

I have Dockerfile:

FROM postgres
ENV POSTGRES_USER root
ENV POSTGRES_PASSWORD root
ENV POSTGRES_DB world
COPY world.sql /docker-entrypoint-initdb.d/

I run docker build -t postgres, then I create container but it doesn’t create database in PG. Does anyone have any idea?

world.sql :

CREATE TABLE city (
                      id integer NOT NULL,
                      name text NOT NULL,
                      countrycode character(3) NOT NULL,
                      district text NOT NULL,
                      population integer NOT NULL
);

CREATE TABLE country (
                         code character(3) NOT NULL,
                         name text NOT NULL,
                         continent text NOT NULL,
                         region text NOT NULL,
                         surfacearea real NOT NULL,
                         indepyear smallint,
                         population integer NOT NULL,
                         lifeexpectancy real,
                         gnp numeric(10,2),
                         gnpold numeric(10,2),
                         localname text NOT NULL,
                         governmentform text NOT NULL,
                         headofstate text,
                         capital integer,
                         code2 character(2) NOT NULL,
                         CONSTRAINT country_continent_check CHECK ((((((((continent = 'Asia'::text) OR (continent = 'Europe'::text)) OR (continent = 'North America'::text)) OR (continent = 'Africa'::text)) OR (continent = 'Oceania'::text)) OR (continent = 'Antarctica'::text)) OR (continent = 'South America'::text)))
);

CREATE TABLE countrylanguage (
                                 countrycode character(3) NOT NULL,
                                 "language" text NOT NULL,
                                 isofficial boolean NOT NULL,
                                 percentage real NOT NULL
);

2

Answers


  1. Syntax issue

    ENV POSTGRES_USER=root
    ENV POSTGRES_PASSWORD=root
    ENV POSTGRES_DB=world
    
    Login or Signup to reply.
  2. Could you provide container logs?

    I ran your solution but it works in my case

    The database has been successfully created

    docker run -d --name my-postgresdb-container -p 5432:5432 postgres
    docker logs <CONTAINER ID>
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search