Как всегда использовать CLI в Docker?

Я Dockerizing каждый мой проект, и я использую CLI под названием forever перезапустить мои скрипты, если они потерпят неудачу.

Я использовал официальное руководство по Docker для node.js, чтобы докернизировать мои более простые сценарии, но когда я подошел к более сложному (который использовал forever CLI) Я не знал, как запустить CLI в Docker.

Есть ли способ сделать это возможным, либо с помощью forever CLI или модуль?

1 ответ

Решение

Я повторю комментарий Оливера, так как думаю, что это действительно правильный ответ. При запуске процесса в качестве контейнера Docker уже существуют механизмы для обработки того, что forever делает для вас.

Быстрый блеск над forever Действия показывают, что это на самом деле уже немного похоже на Docker:

  actions:
    start               Start SCRIPT as a daemon
    stop                Stop the daemon SCRIPT by Id|Uid|Pid|Index|Script
    stopall             Stop all running forever scripts
    restart             Restart the daemon SCRIPT
    restartall          Restart all running forever scripts
    list                List all running forever scripts
    config              Lists all forever user configuration
    set <key> <val>     Sets the specified forever config <key>
    clear <key>         Clears the specified forever config <key>
    logs                Lists log files for all forever processes
    logs <script|index> Tails the logs for <script|index>
    columns add <col>   Adds the specified column to the output in `forever list`
    columns rm <col>    Removed the specified column from the output in `forever list`
    columns set <cols>  Set all columns for the output in `forever list`
    cleanlogs           [CAREFUL] Deletes all historical forever log files

Вместо того, чтобы использовать forever чтобы управлять своим процессом, просто используйте Docker:

  • --restart=always вариант для docker run та же основная концепция forever, чтобы перезапустить приложение и продолжить его работу в случае сбоя.
  • docker run является синонимом forever start, добавлять -d в docker run бежать в фоновом режиме.
  • docker ps является синонимом forever list, В случае с Docker, просто сделайте каждый из ваших forever обрабатывает контейнер Docker.
  • docker logs является синонимом forever logs,

Это должно сделать это довольно тривиальным, просто сделать ваш процесс CMD или же ENTRYPOINT в Dockerfile и покончить с forever полностью.

В дальнейшем, когда вы начнете входить в оркестровку и развертывание контейнера, взгляните на проверки работоспособности (HEALTHCHECK инструкция), Docker Swarm и Docker Compose.

Другие вопросы по тегам