Как докеризовать приложение Node.js

Kak Dokerizovat Prilozenie Node Js



Докеризация приложения включает в себя указание всех предварительных условий, необходимых для выполнения приложения, а затем использование Dockerfile для создания специализированного образа Docker, который можно использовать совместно с различными компьютерами. Докеризация « Node.js Приложение повышает согласованность и обеспечивает удобную отладку на стороне разработчика.

Предварительные условия







Предпосылки для докеризации « Node.js Приложение включает в себя следующее:



  • Установка докера.
  • Базовое понимание приложения Node.js.

Как Dockerize приложение Node.js?

А» Node.js Приложение можно закрепить, выполнив следующие шаги:



Шаг 1. Создайте файл package.json.





Сначала создайте новый каталог, в котором будут храниться все файлы. В этом каталоге создайте « пакет.json ” файл, который представляет приложение вместе с его зависимостями:

{
'имя' : 'docker_web_app' ,
'версия' : '1.0.0' ,
'описание' : «Node.js в Docker» ,
'автор' : 'Первый Последний ' ,
'основной' : 'сервер.js' ,
'сценарии' : {
'начинать' : 'узел server.js'
} ,
'зависимости' : {
'выражать' : '^4.18.2'
} }



Шаг 2. Создайте файл package-lock.json.

В файле package.json выполните команду « установка npm » командлет. Это создаст « пакет-lock.json », который копируется в образ Docker, следующим образом:

НПМ установить

Шаг 3: Создайте сервер

После этого создайте « сервер.js ” файл, который объявляет веб-приложение, использующее “ Экспресс.js ' рамки:

«используйте строгий» ;

константный экспресс = требуется ( 'выражать' ) ;

константный ПОРТ = 8080 ;
константный ХОСТ = '0.0.0.0' ;

константное приложение = экспресс ( ) ;
app.get ( '/' , ( требование, разрешение ) '=' > {
повторно отправить ( 'Привет, мир' ) ;
} ) ;

приложение.прослушивать ( ПОРТ, ХОСТ, ( ) '=' > {
консоль.log ( ` Запуск по http: // ${HOST} : ${ПОРТ} ` ) ;
} ) ;

Теперь давайте перейдем к методологиям выполнения приложения в контейнере Docker через официальный образ Docker.

Шаг 4. Создайте файл Dockerfile.

Создайте Dockerfile вручную в том же каталоге, содержащем все файлы. В этом файле напишите следующую строку кода:

ОТ узла: 18
РАБОЧИЙ ДИАПАЗОН / usr / источник / приложение
КОПИРОВАТЬ пакет * .json. /
ЗАПУСК НПМ установить
КОПИРОВАТЬ. .
РАЗОБЛАЧАТЬ 8080
КМД [ 'узел' , 'сервер.js' ]

В приведенном выше фрагменте кода примените следующие шаги:

  • Во-первых, используйте последнюю версию узла 18 с долгосрочной поддержкой в ​​качестве базового образа, содержащегося в Докер-Хаб .
  • После этого создайте каталог для хранения кода приложения в образе.
  • Это представляет собой рабочий каталог приложения.
  • Теперь установите зависимости приложения через « НПМ ».
  • Примечание: Если используется npm версии 4 или более ранней, файл package-lock.json не будет создан.
  • Теперь скопируйте « пакет.json ' файл. Кроме того, свяжите исходный код приложения с образом Docker с помощью файла « КОПИРОВАТЬ » инструкция.
  • Используйте функцию « РАЗОБЛАЧАТЬ » инструкция, позволяющая приложению привязываться к порту 8080.
  • Наконец, определите командлет для выполнения приложения через CMD, который определяет среду выполнения. Здесь « узел server.js ” будет использоваться для запуска сервера.

Шаг 5. Создайте файл «.dockerignore».

Создайте файл «.dockerignore» в папке « Докерфайл » каталог/папка, содержащая указанный ниже контент:

node_modules
npm-debug.log

Это содержимое позволяет избежать копирования локальных модулей и журналов отладки в образ Docker.

Шаг 6: Создайте изображение

Теперь в каталоге, содержащем Dockerfile, создайте образ с помощью приведенного ниже командлета:

сборка докера. nodejs / узел-веб-приложение

В этом командлете « nodejs «» относится к имени каталога, поэтому укажите соответствующий командлет и « ”флажок помечает изображение.

Теперь перечислите изображения с помощью этой команды:

докер изображения

Шаг 7. Запустите образ

Выполните/запустите образ, используя приведенный ниже командлет:

запуск докера -п 49160 : 8080 nodejs / узел-веб-приложение

Здесь « -п Флаг ” перенаправляет общедоступный порт на частный внутри контейнера, а флаг “ Флаг запускает контейнер в автономном режиме, то есть в фоновом режиме.

Шаг 8. Сгенерируйте выходные данные приложения

Теперь распечатайте выходные данные приложения, используя следующие команды:

докер пс
журналы докера 77b1e3c8576e

Если есть необходимость перемещаться внутри оболочки контейнера, используйте команду « руководитель » командлет:

докер руководитель -это 77b1e3c8576e / мусорное ведро / бить

Здесь, ' 77b1e3c8576e ” представляет идентификатор контейнера, который можно скопировать с помощью выполненного “ докер, пс команда ранее.

Шаг 9: Тестирование приложения

Для тестирования приложения получите порт приложения, сопоставленный Docker:

докер пс

В приведенном выше командлете Docker сопоставил « 8080 «порт внутри контейнера в порт» 49160 » на машине.

Шаг 10: Вызов приложения

Вызовите приложение через « завиток ” командлет, обратившись к указанному выше порту и введя необходимые значения:

завиток локальный хост: 49160

Шаг 11: Закройте/завершите приложение

Наконец, закройте приложение через « убийство » командлет:

докер убийство 77b1e3c8576e

Также проверьте, остановлено ли приложение, с помощью этой команды с входными значениями:

завиток локальный хост: 49160

Заключение

А» Node.js Приложение можно закрепить, создав сервер, файл dockerfile, файл «.dockerignore», создав и запустив образ, сгенерировав выходные данные приложения, а также протестировав, закрыв и подтвердив остановку приложения. В этой статье подробно рассматривается докеризация приложения Node.js.