Докеризујте свој Ноде.јс РЕСТ АПИ користећи Доцкер-ову технологију контејнеризације, која поједностављује процес постављања и управљања.

Процес постављања и покретања апликација у различитим окружењима може бити проблематичан јер постоји низ фактора које треба узети у обзир као што је подешавање променљивих окружења за конфигурисање потребних зависности и специфичних верзија различитих софтверских пакета.

Међутим, коришћењем Доцкер-ове технологије контејнеризације, можете применити апликације у различитим окружењима уз минималан напор са свим потребним зависностима у доцкер слици. Што значи, не морате да бринете о прављењу било какве конфигурације. Ово чини процес постављања и покретања апликација у различитим окружењима лаким.

Шта је Доцкер?

Доцкер је развојна платформа која обезбеђује алате и окружење за паковање апликација као преносивих слика које се могу покренути као самосталне извршне компоненте у контејнерима.

Ови контејнери сачињавају код апликације и потребне зависности за успешно покретање апликације у различитим окружењима током извршавања без икаквих проблема.

instagram viewer

Пре него што почнете, инсталирајте Доцкер на своју локалну машину. Проверите предуслове специфичне за платформу и упутства за инсталацију из званичне документације.

Направите Ноде.јс РЕСТ АПИ

Започети, креирајте Ноде.јс веб сервер.

Код ове апликације можете пронаћи у њој ГитХуб спремиште.

Затим инсталирајте потребне пакете за овај пројекат.

нпм инсталл морган пг кнек

Тхе стр пакет се користи за успостављање везе са ПостгреСКЛ базом података. кнек, с друге стране, пружа једноставан АПИ за интеракцију са ПостгреСКЛ-ом — користићете га за писање СКЛ упита.

На крају, користићете морган, међувера који евидентира ХТТП захтеве и одговоре на конзоли, за отклањање грешака и надгледање ваше апликације која ради у Доцкер контејнеру.

На крају, отворите индек.јс датотеку и додајте код испод тога имплементира једноставан РЕСТ АПИ са три правца.

конст екпресс = захтевају("изразити")
конст морган = захтевају("морган")
конст апп = екпресс()
конст дб = захтевају('./дб')
конст ПОРТ = процес.енв. ПОРТ || 5000

апп.усе (морган('дев'))
апп.усе (екпресс.јсон())
апп.усе (екпресс.урленцодед({ продужени: истина }))

апп.гет('/', (рек, рес) => рес.сенд('Здраво Свете!' ))

апп.гет('/усерс', асинц (рек, рес) => {
конст корисници = чекати дб.селецт().фром('корисници')
рес.јсон (корисници)
})

апп.пост('/усерс', асинц (рек, рес) => {
конст корисник = чекати дб('корисници').инсерт({ име: рек.боди.наме }).ретурнинг('*')
рес.јсон (корисник)
})

апп.листен (ПОРТ, () => конзола.Пријава(`Сервер горе на ПОРТ-у:${ПОРТ}`))

Конфигуришите везу са базом података

РЕСТ АПИ ће комуницирати са Доцкер-овом ПостгреСКЛ инстанцом, међутим, прво морате да конфигуришете везу са базом података у вашој апликацији. У основном директоријуму фасцикле вашег пројекта, креирајте а дб.јс датотеку и додајте код испод.

конст кнек = захтевају('кнек')
модул.екпортс = кнек({
клијент: 'постгрес',
веза: {
домаћин: 'дб',
корисник: 'тестУсер',
Лозинка: 'моја лозинка123',
база података: 'тестУсер',

},
})

Подесите датотеке миграте.јс и сеед.јс

Ове две датотеке ће омогућити да се направи табела у бази података и попуни је тест подацима преко АПИ-ја. Креирате нову фасциклу, скрипте, у основни директоријум вашег пројекта и додајте две датотеке: миграте.јс и сеед.јс.

У миграте.јс датотеку, додајте код испод:

конст дб = захтевају('../дб');
(асинц () => {
покушати {
чекати дб.сцхема.дропТаблеИфЕкистс('корисници')
чекати дб.сцхема.витхСцхема('јавно').цреатеТабле('корисници', (табела) => {
табле.инцрементс()
табле.стринг('име')
})
конзола.Пријава('Креирана табела корисника!')
процесс.екит(0)
} улов (ерр) {
конзола.лог (грешка)
процесс.екит(1)
}
})()

Овај код ће створити а корисника табела са колоном ИД која се аутоматски повећава и а име колону у бази података.

Следеће, у сеед.јс датотеку, додајте код испод:

конст дб = захтевају('../дб');
(асинц () => {
покушати {
чекати дб('корисници').инсерт({ име: 'Тест Усер1' })
чекати дб('корисници').инсерт({ име: 'Тест Усер2' })
конзола.Пријава('Додани лажни корисници!')
процесс.екит(0)
} улов (ерр) {
конзола.лог (грешка)
процесс.екит(1)
}
})()

Овај код имплементира асинхрону функцију која ће уметнути два корисника у ПостгреСКЛ базу података.

На крају, додајте ове команде у свој пацкаге.јсон фајл.

"скрипте": {
"почетак": "индекс чвора.јс",
"мигрирати": „ноде сцриптс/миграте.јс“,
"семе": "скрипте чвора/сеед.јс"

},

Пошто немате конфигурисан клијент, да бисте тестирали АПИ, мораћете да покренете две датотеке као скрипте поред нпм рун команда.

Подесите Доцкерфиле

Доцкерфиле дефинише упутства потребна Доцкер машини за прављење Доцкер слике. У основном директоријуму вашег пројекта креирајте нову датотеку и дајте јој назив, Доцкерфиле. Затим додајте следећа упутства да бисте направили Доцкер слику за апликацију Ноде.јс.

ИЗ чвор:16.3.0-алпине3.13
ВОРКДИР /app
ЦОПИ пакет*.јсон ./
ТРЦАТИ нпм инсталл
ЦОПИ. .
ЕКСПОСЕ8000
ЦМД [ "чвор", "индек.јс" ]

Хајде да га разложимо:

  • ИЗ - Ово упутство поставља основну слику за апликацију, а то је слика Ноде.јс Алпине, лака верзија слике Ноде.јс која се може наћи у Доцкер регистру.
  • ВОРКДИР - сетови /app директоријум као радни директоријум.
  • ЦОПИ пакет*.јсон./ - налаже Доцкер-у да копира све датотеке са тим форматом назива датотеке из тренутног директоријума у /app фолдер.
  • ТРЦАТИ - извршава и гради слику.
  • ЦОПИ.. - копира изворне датотеке у /app фолдер.
  • ЕКСПОСЕ - ово налаже Доцкер-у да изложи порт унутар контејнера спољашњем окружењу, у овом случају, хост машини.
  • ЦМД - одређује команду која ће се извршити када се Доцкер контејнер креира од слике.

Креирајте датотеку Доцкер Цомпосе

Да би апликација Ноде.јс била у интеракцији са Доцкер-овом ПостгреСКЛ инстанцом, две апликације морају да раде у Доцкер контејнерима у оквиру истог мрежног окружења.

Из тог разлога, морате да дефинишете и изградите и слику апликације и ПостгреСКЛ инстанцу користећи Доцкер Цомпосе — алат који вам омогућава да направите и управљате више Доцкер контејнера.

Једноставно речено, користећи Доцкер Цомпосе, можете дефинисати услуге које чине вашу апликацију као једну целину, у овом случају, Ноде.јс РЕСТ АПИ и ПостгреСКЛ базу података.

Креирајте нову датотеку, доцкер-цомпосе.имл, у основни директоријум и додајте код испод:

верзија:'3.9'

услуге:
сервер:
изградити:.
портови:
-'5000:5000'
зависи од:
-дб
дб:
слика:'постгрес'
портови:
-'4321:5432'
Животна средина:
ПОСТГРЕС_ПАССВОРД:'моја лозинка123'
ПОСТГРЕС_УСЕР:'тестУсер'
свеске:
-дата:/вар/либ/постгрескл/дата

свеске:
подаци:

Овај код ће креирати и покренути два Доцкер контејнера. Први контејнер, сервер, Доцкер Цомпосе користи Доцкерфиле да направи слику за овај контејнер.

Такође наводи да контејнер сервера зависи од дб контејнер. Што значи, тхе сервер контејнер се мора покренути након дб контејнер за повезивање са њим.

Други контејнер је контејнер ПостгреСКЛ базе података. Не морате да наведете Доцкерфиле за овај контејнер јер ће бити креиран од ПостгреСКЛ слике у Доцкеровом регистру слика.

Направите Доцкер слике

Користите команду Доцкер Цомпосе да направите слике и покренете два контејнера.

доцкер-цомпосе уп -д

Требало би да видите сличан одговор након што се процес успешно заврши.

Тестирајте РЕСТ АПИ

Покрените наредбу у наставку да бисте тестирали РЕСТ АПИ који ради у Доцкер контејнеру. Требало би да креира табелу у ПостгреСКЛ бази података.

доцкер екец доцкер_ноде-сервер-1 нпм рун миграте

Требало би да видите сличан одговор.

Дељење Доцкер слика

Последњи корак је гурање Доцкер слике за вашу Ноде.јс апликацију у Доцкер Хуб. Ово је слично гурању ваших пројеката на ГитХуб.

  • Пређите на Доцкер Хуб и пријавите се за налог и пријавите се на корисничку контролну таблу.
  • Затим кликните на Направите спремиште. Наведите име вашег спремишта и подесите његову видљивост на било који Јавно или Приватни а затим кликните Креирај.
  • Да бисте пребацили Доцкер слику своје апликације у Доцкер Хуб, прво морате да се пријавите на свој налог преко терминала, а затим да унесете своје корисничко име и лозинку.
доцкер логин
  • Затим ажурирајте име своје Доцкер слике да одговара овом формату: /. Покрените наредбу у наставку да бисте извршили ову промену:
 доцкер таг /
  • На крају, притисните своју Доцкер слику.
 доцкер пусх /< име репо>

Коришћење Доцкер-а у развоју

Овај водич је дотакао само делић потенцијала који Доцкер може да понуди. Међутим, сада можете да користите Доцкер-ову технологију контејнеризације да бисте паковали било коју апликацију и све њене зависности као слике које се могу применити у различитим развојним, као и у производним окружењима попут облака без икаквих штуцање.