, как лучше это реализовать?
запустить отдельный контейнер которые будет запускать и выдавать какойто лог того чего он наделал?
FROM alpine:latest # copy crontabs for root user COPY config/cronjobs /etc/crontabs/root # start crond with log level 8 in foreground, output to stderr CMD ["crond", "-f", "-d", "8"] ??
это мне поможет запускать джобы в разных контейнерах? как будет джоба писаться?
что из себя представляет ваш job? какой стек технологии?
Where cronjobs is the file that contains your cronjobs, in this form: * * * * * echo "hello stackoverflow" >> /test_file 2>&1 # remember to end this file with an empty new line
я не вижу тут механизма как передается задача на контейнер с убунту
В dockerfile php создаете volume для папки проекта. В dockerfile для cron используете эту папку проекта (тоже volume) в файле cronjobs создаете ваши задачи
Что значит передать задачи?
ну это логично вроде бы есть контейнер с убунту апач + пхп мне нужно на нем запустить чтото типа php run.php > log.log внутри тогоже контейнера скрипт на пхп выполниться сделает запись в базу mysql - результат работы в лог файл каким образом альпайн тут учавствует и как он заускает крон на другом то контейнере и получает вывод лога (ну лог ладно через волюм) а как снаружи происходит запуск то?
Если у вас только один контейнер, и все внутри, то что мешает установить cron, настроить его и запустить на том же контейнере?
хочеться сделать чтото централизованное для 10ка подобных контейнеров )
COPY конфиги_крона RUN установить cron && запустить cron
То есть у вас 10 запущенных контейнеров apache + php, но хотите чтобы был один отдельный контейнер для задач крона?
да появилась мысль чтото подобное сделать
Как вариант, вам нужно сделать копию основного докерфайла, чтобы были установлены все необходимые зависимости для запуска cron задачи, напр php, pdo_mysql и т.д., но без apache. И в этом новом файле указать настройки для cron
Обсуждают сегодня