RE: Постргис в докере

From: "Ilya Dyoshin" <ilya(at)uniqa(dot)kiev(dot)ua>
To: "'Dmitry E(dot) Oboukhov'" <unera(at)debian(dot)org>, <pgsql-ru-general(at)lists(dot)postgresql(dot)org>
Subject: RE: Постргис в докере
Date: 2018-08-02 09:58:14
Message-ID: 006201d42a47749c80$fd5dd580$@uniqa.kiev.ua
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

Все просто:

Создается свой собственный docker-image с предопределенной базой данных.

Копируем оригинальный docker-image который опубликован для постгреса.

И в конце

RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat
ENTRYPOINT ["docker-entrypoint.sh"]

EXPOSE 5432
CMD ["postgres"]

Меняешь на что-то такое:
RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat

RUN docker-entrypoint.sh && sleep 1000 && make create_or_update_db test

ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 5432
CMD ["postgres"]

По-идее должно сработать и простое наследование

FROM postgresql:version
RUN docker-entrypoint.sh && sleep 1000 && make create_or_update_db test
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 5432
CMD ["postgres"]

И сохраняшешь получившийся контейнер. Тегаешь и отправляешь в свой репозиторий.

Потом просто:
FROM mytestingpostgresql:latest
RUN make additional_db_modification

Как-то так

-----Original Message-----
From: Dmitry E. Oboukhov <unera(at)debian(dot)org>
Sent: Thursday, August 2, 2018 12:34 PM
To: pgsql-ru-general(at)lists(dot)postgresql(dot)org
Subject: Постргис в докере

я тут начал копаться с docker

беру docker postgresql:version

запускаю сервисом
затем запускаю свои CI-скрипты

в них делается условный

make create_or_update_db test

то есть сперва накатываем структуру/данные в Pg в докере а потом пускаем на нем тесты.

все бы ничего, но миграций скопилось довольно много и сейчас создание просто структуры БД для тестов занимает где-то 15 минут.

что хочу:

хочу докер, желательно прямой наследник от постгрисовых докеров с Pg у которого БД чем-то заполнена.
причем заполнение чтобы осуществлялось через коннект/протокол.

то есть идеально бы прийти к схеме:

1. берем docker, например postgresq:9.5
2. запускаем
3. из другого докера коннектим к нему и заполняем данными (потому что инфраструктура наполнения данными и слежения за миграциями большая и отдельная, расчитанная на продакшены итп) 4. каким-то образом фиксируем состояние постгриса в докере с новым именем 5. дальше пользуемся результатом на пункте 4 вместо postgresql:9.5

Вопрос: как можно просто реализовать пункт 4?

--

. ''`. Dmitry E. Oboukhov <unera(at)debian(dot)org>
: :’ :
`. `~’ GPG key: 4096R/08EEA756 2014-08-30
`- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756

In response to

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2018-08-02 12:37:36 Re: Постргис в докере
Previous Message Москаленко Сергей 2018-08-02 09:43:12 Re: Постргис в докере