2016-06-24 11 views
0

Я пытаюсь запустить команду внутри докера. Эта команда присутствует в скрипте, сценарии точки входа, который запускается при запуске контейнера с использованием команды запуска docker. В большинстве случаев команда at выполняется успешно, но как 1 из пяти раз команда не запускается. Это какая-то ошибка или я что-то упускаю? Пожалуйста, предложите что-нибудь.в команде внутри контейнера докера

ответ

3

Команда at запускает задачу для запуска cron. Cron - это служба ОС, которая воспитывается с ОС. Контейнеры - это инструмент изоляции процесса, который не запускает службы ОС (это анти-шаблон). Это означает, что нет демона cron для запуска вашей команды внутри контейнера по умолчанию.

Чтобы запланировать что-то, вам понадобится анти-шаблон запуска демона cron как часть запуска вашего контейнера или, желательно, у вас будет ваш планировщик либо вне контейнера, либо содержится в его собственном контейнере микросервиса.

+0

Я думаю, что забыл упомянуть, что в одном контейнере также работает несколько заданий cron, и они отлично работают, поэтому я не думаю, что «нужно» (просто спекулировать) быть проблемой, к тому же я уже упоминал в вопросе, что он терпит неудачу только 1 из 5 раз в среднем, поэтому, если проблема была запущена при запуске cron, то она не должна запускаться даже один раз. PS: Извините за поздний ответ :) – tom

+0

Я думаю, нам сначала нужно было понять, как работают ваши задания cron, поскольку по умолчанию не существует crond. Более подробная информация необходима для вашего изображения/контейнера. – BMitch

+0

Прошу прощения, но у меня нет права больше делиться контейнером. Все, что я могу сказать, это то, что я не делаю ничего особенного, чтобы запускать задания cron. Я имею в виду, что я не запускаю коронку, ее автоматически запускают. Я просто добавляю задания в crontab через скрипт точки входа. – tom