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