Запустите два исполняемых файла в докере - PullRequest
0 голосов
/ 10 июля 2019

Я бы хотел, чтобы мой контейнер запускал два процесса при его запуске;

  1. обобщенный процесс "этот процесс выполняется, чтобы держать контейнер активным" (keep_awake.sh), и
  2. node app.js

Есть ли какой-нибудь способ запустить оба из них при запуске, основываясь на файле dockerfile?

Я думаю о каком-то злоупотреблении bash, но пока не знаю, какой именно.

Более сложные вещи, keep_awake.sh находится в каталоге, отличном от app.js.

1 Ответ

3 голосов
/ 10 июля 2019

Вам никогда не понадобится искусственный процесс «сохранить этот контейнер живым».Это вдвойне верно в описываемой вами ситуации, когда у вас есть один длительный процесс приложения.

Рекомендуется, чтобы контейнер Docker запускал один процесс и выполнялэто как передний план работа.Если этот процесс когда-нибудь завершится, контейнер тоже выйдет - и вы этого хотите.(Было бы неловко, если бы ваше приложение Node умерло, но вы не заметили, потому что Docker видит, что tail -f /dev/null все еще работает.)

Короче, заканчивайте свой Dockerfile с помощью

CMD ["node", "app.js"]

и игнорируйте второй бездействующий процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...