Nodejs Skaffold локальная разработка для процесса prod

#node.js #kubernetes #skaffold

#node.js #kubernetes #skaffold

Вопрос:

Новое в container и kubernetes.

Я пытаюсь настроить все так, чтобы у нас был паритет локальной разработки на всем пути через prod.

Skaffold кажется хорошим способом сделать это, но меня смущают несколько небольших фрагментов примеров и «идеальный рабочий процесс»

Ссылка https://github.com/GoogleContainerTools/skaffold/tree/master/examples/nodejs

Файл dockerfile, который они предоставляют, использует nodemon. Разве этот же контейнер не использовался бы в prod? Разве было бы плохо запускать nodemon в prod?

Как мне настроить локальную среду разработки kubernetes с синхронизацией файлов в реальном времени и использовать те же ресурсы (для обеспечения идемпотентности) для производства?

Комментарии:

1. Вероятно, вам следует открыть это как проблему в этом репозитории. 🙂 Похоже, пример недостаточно ясен.

Ответ №1:

Вы абсолютно правы. Использование nodemon в производственном контейнере не рекомендуется. Вместо этого обычно требуются разные изображения или разные точки входа для разработки, промежуточной разработки и производства. Есть два варианта решения этой проблемы:

1. Несколько файлов Dockerfile
Вы можете настроить профили в Skaffold и указать Skaffold использовать другой файл Dockerfile на этапе сборки:https://skaffold.dev/docs/how-tos/profiles

2. Один Dockerfile Dev переопределяет
Если вы не хотите управлять несколькими файлами Dockerfile, вы могли бы использовать инструмент разработки, который поддерживает переопределения dev. Пространство разработки (https://github.com/devspace-cloud/devspace ) например, различает devspace deploy и devspace dev , которые применяют определенные переопределения, например, переопределение точки входа в изображение. В этом случае вы могли бы указать 2 скрипта npm в вашем package.json и запустить режим разработки с использованием точки входа npm start dev и производственного режима npm start .