В настоящее время я запускаю службу, которая раскручивает виртуальные испытательные стенды в Openstack, которые имеют установленное время истечения.Этот сервис в настоящее время работает в док-контейнере.Однако, чтобы отделить очистку (обработку времени истечения), у меня есть отдельный скрипт, который действует как независимый клиент и выдает запросы на удаление в службу.В настоящее время они живут в одном и том же контейнере.
Точка входа в докер выглядит примерно так
#!/bin/bash
#
# Used by Docker in order to run both the server and the
# cleaner process at the same time. When server dies
# or is killed, cleaner is killed as well to ensure that
# the container exits.
#
# turn on bash's job control
set -m
# Start the primary process and put it in the background
poetry run waitress-serve --port=5000 --threads=8 --call "server:app.create_app" &
# Write cleaner.cfg file
cat << EOF > /etc/cleaner.ini
[conf]
host: 127.0.0.1
port: 5000
EOF
# Start the helper process
poetry run cleaner -c /etc/cleaner.ini &
# now we bring the primary process back into the foreground
# and leave it there
fg %1
# Once the primary process dies, lets kill the helper
# script
kill %2
Это работает нормально ... но это стало проблемой, если уборщикзависает или умирает из-за введенной мной ошибки или чего-то еще, мне нужно повторно войти в контейнер и перезапустить очиститель в фоновом режиме.Другая проблема заключается в том, что журналы теряются в журналах сервера, и трудно понять, когда возникает проблема.Очиститель работает только каждые 15 минут.
Я хотел бы разбить его в свой собственный контейнер.Я хотел бы удалить сон из скрипта Python Cleaner и сделать так, чтобы скрипт вызывался с интервалом.Я понимаю, что Cron не работает хорошо в контексте докера:
- Cron Daemon будет отдельным процессом
- Как обработать стандартный вывод для поддержки
docker logs ...
? - Как cron обрабатывает зависшие процессы?
Принимая это во внимание.Мне бы очень хотелось, чтобы аспект Cron находился снаружи контейнера докера.Просто docker run
каждые 15 минут.Кто-нибудь сделал что-то подобное?Есть ли нативная поддержка?И самое главное, есть ли способ сохранить / прикрепить журналы между прогонами, чтобы журналы не терялись при каждом вращении?Google не указал мне на какие-либо полезные ресурсы.Спасибо.