Все просто:
Создается свой собственный 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@debian.org>
Sent: Thursday, August 2, 2018 12:34 PM
To: pgsql-ru-general@lists.postgresql.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@debian.org>
: :’ :
`. `~’ GPG key: 4096R/08EEA756 2014-08-30
`- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756