Nodejs Skaffold местное развитие в процессе производства

Новое в контейнерах и кубернетес.

Я пытаюсь все настроить, чтобы у нас был паритет местного развития на всем протяжении прод.

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

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

Предоставляемый ими докер-файл использует nodemon. Разве этот же контейнер не будет использоваться в Prod? Разве не плохо было бы запускать nodemon в prod?

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

0 ответов

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

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

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

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