Как мне запустить postgresql из Docker - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь запустить сервис postgresql во время сборки докера.

В моем файле Docker:

RUN /etc/init.d/postgresql start && createdb gis && psql -d gis -c 'CREATE EXTENSION postgis; CREATE EXTENSION hstore;'

Вывод при сборке:

Step 29/29 : RUN /etc/init.d/postgresql start && createdb gis && psql -d gis -c 'CREATE EXTENSION postgis; CREATE EXTENSION hstore;'
 ---> Running in 7d7848bf2d1a
 * Starting PostgreSQL 9.5 database server
   ...done.
CREATE EXTENSION

Проверка статуса в док-контейнере:

postgres@16ab935bc857:/$ /etc/init.d/postgresql status
9.5/main (port 5432): down

Но выполнение команды непосредственно в контейнере Docker действительно показывает, что она выполнялась раньше и создала контейнер

postgres@16ab935bc857:/$ /etc/init.d/postgresql start && createdb gis && psql -d gis -c 'CREATE EXTENSION postgis; CREATE EXTENSION hstore;'
 * Starting PostgreSQL 9.5 database server                                                                                                                                        [ OK ] 
createdb: database creation failed: ERROR:  database "gis" already exists

Кто-нибудь знает, как правильно запустить службу postgresql в Dockerfile ?

Обновление : Мое лучшее предположение следующее: Каждая строка в файле Docker просто представляет новый сеанс bash, но аналогия с выключением системы и загрузкой будет более правильной. Это означает, что все команды в одной строке (связанные с "&&") были пройдены, и мне просто нужно было бы сделать еще один "postgresql start &&" в начале следующей строки или связать другие команды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...