Docker - docker-compose - postgres image - PullRequest
1 голос
/ 19 июня 2019

Я использую postgres: последнее изображение и создаю резервные копии с помощью следующей команды

pg_dump postgres -U postgres > /docker-entrypoint-initdb.d/backups/redmine-$(date +%Y-%m-%d-%H-%M).sql

и периодически запускается crontab

*/30 * * * * /docker-entrypoint-initdb.d/backup.sh

Однако иногда мне может понадобиться запустить

docker-compose down/up

по любой причине

Проблема Мне всегда нужно вручную запускать /etc/init.d/cron start всякий раз, когда я перезагружаю контейнер. Это небольшая проблема, потому что это трудно запомнить, и если я (или кто-то еще) забудет об этом, резервное копирование не будет выполнено

Согласно документации, скрипты, заканчивающиеся *.sql и *.sh внутри /docker-entrypoint-initdb.d/, запускаются при запуске контейнера (и они делают) Однако, если я помещу /etc/init.d/cron start в исполняемый файл .sh, остальные команды внутри этого файла будут выполнены, и я это проверил. Но служба cron не запускается, вероятно, из-за того, что /etc/init.d/cron start внутри исполняемого файла не выполняется успешно

Буду признателен за любые предложения по решению

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

Вы хотите, чтобы ваши докерские контейнеры были как можно более независимыми от других сервисов. Я бы порекомендовал вам вместо запуска cronjob в контейнере делать это на хосте, таким образом, он будет работать, даже если контейнер будет перезапущен ( Погода автоматически или вручную).

Если вы действительно чувствуете необходимость в этом, я бы создал новый образ с образом postgres в качестве базового, и добавил бы cron прямо оттуда, так, чтобы он был в контейнере с самого начала, без каких-либо дополнительных скриптов, необходимых , Или даже создайте другой образ просто для вызова cronjob и подключения через сеть докеров.

1 голос
/ 19 июня 2019

Расширяя ответ @ Jite, вы можете запустить pg_dump удаленно в другом контейнере, используя опцию --host

Это изображение , например,обеспечивает минимальную среду с psql клиентом и утилитами dump / restore

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