Как всегда использовать 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.