Вам никогда не понадобится искусственный процесс «сохранить этот контейнер живым».Это вдвойне верно в описываемой вами ситуации, когда у вас есть один длительный процесс приложения.
Рекомендуется, чтобы контейнер Docker запускал один процесс и выполнялэто как передний план работа.Если этот процесс когда-нибудь завершится, контейнер тоже выйдет - и вы этого хотите.(Было бы неловко, если бы ваше приложение Node умерло, но вы не заметили, потому что Docker видит, что tail -f /dev/null
все еще работает.)
Короче, заканчивайте свой Dockerfile с помощью
CMD ["node", "app.js"]
и игнорируйте второй бездействующий процесс.