Докеризирането на приложение включва уточняване на всички предпоставки, необходими за изпълнение на приложението и след това използване на Dockerfile за изграждане на специализирано изображение на Docker, което може да се споделя с различни машини. Докеризиране на „ Node.js ” подобрява последователността и осигурява удобно отстраняване на грешки от страна на разработчика.
Предпоставки
Предпоставките за докеризиране на „ Node.js ” включва следното:
- Инсталиране на Docker.
- Основно разбиране на приложението Node.js.
Как да Dockerize Node.js приложение?
A “ Node.js ” приложението може да бъде докеризирано чрез следните стъпки:
Стъпка 1: Създайте файл „package.json“.
Първо създайте нова директория, където ще бъдат включени всички файлове. В тази директория създайте „ package.json ” файл, който представлява приложението заедно с неговите зависимости:
{'име' : 'docker_web_app' ,
'версия' : '1.0.0' ,
'описание' : „Node.js на Docker“ ,
'автор' : 'Първи последен ' ,
'основен' : 'server.js' ,
'скриптове' : {
'старт' : 'възел server.js'
} ,
'зависимости' : {
'експресен' : '^4.18.2'
} }
Стъпка 2: Генерирайте файл „package-lock.json“.
В рамките на файла „package.json“ изпълнете „ npm инсталиране ” кратка команда. Това ще генерира „ package-lock.json ”, който се копира в изображението на Docker, както следва:
npm Инсталирай
Стъпка 3: Създайте сървър
След това създайте „ server.js ' файл, който декларира уеб приложение, използващо ' Express.js ” рамка:
'използвайте строго' ;const express = изисквам ( 'експресен' ) ;
const PORT = 8080 ;
const HOST = „0.0.0.0“ ;
const приложение = експрес ( ) ;
app.get ( '/' , ( req, res ) = > {
повторно изпращане ( 'Здравей свят' ) ;
} ) ;
app.listen ( ПОРТ, ХОСТ, ( ) = > {
console.log ( ` Работи на http: // ${HOST} : ${ПОРТ} ` ) ;
} ) ;
Сега нека да преминем към методологиите за изпълнение на приложението в контейнер на Docker чрез официално изображение на Docker.
Стъпка 4: Създайте Docker файл
Създайте Dockerfile ръчно в същата директория, включваща всички файлове. В този файл напишете следния ред код:
ОТ възел: 18WORKDIR / usr / src / ап
COPY пакет * .json. /
ИЗПЪЛНЕТЕ npm Инсталирай
КОПИЕ . .
ИЗЛОЖИ 8080
CMD [ 'възел' , 'server.js' ]
В горния кодов фрагмент приложете дадените по-долу стъпки:
- Първо, използвайте най-новата дългосрочна поддръжка версия 18 на възела като основно изображение, съдържащо се в Docker Hub .
- След това създайте директория, която да съдържа кода на приложението в изображението.
- Това представлява работната директория за приложението.
- Сега инсталирайте зависимостите на приложението чрез „ npm ”.
- Забележка: Ако се използва npm версия 4 или по-стара, няма да бъде създаден файл „package-lock.json“.
- Сега копирайте „ package.json ” файл. Също така групирайте изходния код на приложението в изображението на Docker чрез „ КОПИЕ ” инструкция.
- Използвайте „ ИЗЛОЖИ ” инструкция, за да позволи на приложението да се свърже с порт 8080.
- И накрая, дефинирайте cmdlet за изпълнение на приложението чрез CMD, който определя времето за изпълнение. Тук „ възел server.js ” cmdlet ще се използва за иницииране на сървъра.
Стъпка 5: Създайте файл „.dockerignore“.
Създайте файл „.dockerignore“ в „ Докер файл ” директория/папка, включваща даденото по-долу съдържание:
node_modulesnpm-debug.log
Това съдържание избягва локалните модули и регистрационните файлове за отстраняване на грешки съответно да бъдат копирани в изображението на Docker.
Стъпка 6: Изградете изображението
Сега, в рамките на директорията, съдържаща Dockerfile, създайте изображението, като използвате кратката команда по-долу:
изграждане на докер. -T nodejs / уеб-приложение за възел
В тази кратка команда „ nodejs ” се отнася до името на директорията, така че посочете cmdlet съответно и „ -T ” маркира изображението.
Сега избройте изображенията чрез тази команда:
докер изображения
Стъпка 7: Стартирайте изображението
Изпълнете/изпълнете изображението, като използвате кратката команда по-долу:
докер изпълнение -стр 49160 : 8080 -д nodejs / уеб-приложение за възел
Тук „ -стр ” пренасочва публичен порт към частен в рамките на контейнера и „ -д ” флагът изпълнява контейнера в отделен режим, т.е. във фонов режим.
Стъпка 8: Генерирайте изхода на приложението
Сега отпечатайте изхода на приложението, като използвате следните команди:
докер псдокер регистрационни файлове 77b1e3c8576e
Ако има нужда от навигация в обвивката на контейнера, използвайте „ изп ” cmdlet:
докер изп -то 77b1e3c8576e / кошче / баш
Тук, ' 77b1e3c8576e ' представлява ID на контейнера, който може да бъде копиран чрез изпълнения ' докер ps ” команда по-рано.
Стъпка 9: Тестване на приложението
За да тествате приложението, извлечете порта на приложението, което Docker картографира:
докер пс
В горната кратка команда Docker картографира „ 8080 „порт в контейнера към порт“ 49160 ” на машината.
Стъпка 10: Извикване на приложението
Извикайте приложението чрез „ къдрица ” cmdlet, като се позовавате на картографирания по-горе порт и въведете необходимите стойности:
къдрица -и локален хост: 49160
Стъпка 11: Затворете/убийте приложението
И накрая, изключете приложението чрез „ убивам ” cmdlet:
докер убивам 77b1e3c8576e
Също така потвърдете дали приложението е спряло чрез тази команда с въведени стойности:
къдрица -и локален хост: 49160
Заключение
A “ Node.js ” приложението може да бъде докеризирано чрез създаване на сървър, докер файл, файла „.dockerignore”, изграждане и стартиране на изображението, генериране на изхода на приложението и тестване, затваряне и потвърждаване на спирането на приложението. Тази статия разработи докеризиране на приложение Node.js.