CRON для запуска только на одном Docker-контейнере - PullRequest
0 голосов
/ 03 июля 2019

У меня есть приложение, которое Dockerized и работает на экземплярах AWS.

В моем DockerFile у меня есть следующий оператор для запуска CRON

RUN bundle exec whenever --update-crontab

Консоль AWS настроена в автоматическом режиме.В масштабируемом режиме, в зависимости от желаемого количества настроенных экземпляров, у меня для приложения запущено 3 контейнера.У меня проблема с моим CRON, работающим во всех контейнерах.

docker exec -it <container-id> service cron status

* cron is running

Появляется для всех 3 контейнеров.

Как настроить CRON для работы только на одном контейнере.

Спасибо

1 Ответ

0 голосов
/ 04 июля 2019

Поскольку у вас есть RUN bundle exec whenever --update-crontab в вашем Dockerfile, он будет работать на каждом образе, созданном с помощью Dockerfile.

У вас есть несколько вариантов:

Создать отдельный сервис cron-service

Эта служба может запустить cron (используйте имеющийся у вас Dockerfile для cron-service) и создать новый Dockerfile (удалите команду cron RUN), чтобы все работало, как ожидается, и cron запускается только один раз ...

...