Jak zbudować aplikację nodejs z Docker

W tym artykule wyjaśni ci, jak zbudować aplikację Nodejs z konteneryzacją Docker. Docker pozwala pakować i uruchamiać aplikacje jako kontenery.

Dzisiaj rozpoczynamy serię samouczków na temat narzędzi do tworzenia oprogramowania. W tym pierwszym artykule obejmuje sposób kontenerowania aplikacji node.js za pomocą Docker. Docker pomaga programistom pakować i uruchamiać aplikacje jako kontenery. Ponieważ pojemnik jest izolowanym procesem i lekką alternatywą dla maszyn wirtualnych. W tym artykule wyjaśniono, jak zbudować aplikację Nodejs z konteneryzacją Docker. Zacznijmy!

Co to jest Docker

Docker to zestaw platformy jako produkty serwisowe, które wykorzystują wirtualizację poziomu systemu operacyjnego do dostarczania oprogramowania w pakietach o nazwie Containers. Jest to otwarta platforma do opracowywania, wysyłki i uruchamiania aplikacji. Docker umożliwia oddzielenie aplikacji od infrastruktury, aby szybko dostarczać oprogramowanie. Docker używa architektury klienta-serwera. Klient Docker rozmawia z Docker Daemon, który prowadzi ciężkie podnoszenie budowania, uruchomienia i dystrybucji kontenerów Docker. Klient Docker i Demon komunikują się za pomocą interfejsu API REST, ponad gniazdem UNIX lub interfejsu sieciowego. Oto schemat architektury Docker.

Architektura Docker

Wymagania wstępne

  • Serwer Ubuntu
  • Docker zainstalowany na serwerze
  • Zainstalowany node.js

Aplikacja konfiguracyjna node.js

Aby utworzyć swój obraz, najpierw musisz wykonać pliki aplikacji, które możesz następnie skopiować do kontenera. Te pliki będą zawierać statyczną treść, kod i zależności aplikacji. Najpierw utwórz katalog do swojego projektu w katalogu domowym użytkownika nie-root. Następnie wykonaj poniżej polecenie w nowym folderze, który utworzyłeś.

npm init -y
npm i -s express

Powyższe polecenie skonfiguruje aplikację Node.js z Express Framework zainstalowaną jako zależność. Dodajmy następujący kod do pliku app.js .

const express = require(‘express’);
const app = express();
app.get(‘/’, function(req,res){
  res.send(“Hello World”);
});
const port = 3000;
app.listen(port, function () {
  console.log(‘Listening on port 3000!’)
})

Uruchom aplikację z node app.js

node app.js

Przejdź do przeglądarki do http: // Your \ _Server \ _IP: 3000. Zobaczysz następującą stronę docelową. Teraz masz uruchomioną aplikację. Możemy teraz przejść, aby stworzyć Plik Docker, który pozwoli nam odtworzyć i skalować tę aplikację.

Napisz DockerFile

Korzystając z DockerFile, możesz określić, co zostanie zawarte w kontenerze aplikacji podczas jego wykonywania i środowisku kontenera. Przede wszystkim utwórz DockerFile z następującym poleceniem u podstaw projektu.

vi Dockerfile

Dodaj następujące z instrukcji, aby ustaw podstawowy obraz aplikacji:

FROM node:12-alpine

{{LINE_43}} {{LINE_44}} Możesz dodać plik .dockerignore, aby usunąć pliki, które nie należą do Docker Image. {{LINE_46}} {{LINE_47}} Utwórzmy Node_Modules Podkazorkodawstwo w /home /node wraz z katalogiem aplikacji. Zapewni to, że mają one potrzebne uprawnienia, które będą ważne, gdy utworzymy lokalne moduły węzłów w kontenerze z instalacją NPM.

...
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app

Następnie ustaw katalog roboczy aplikacji na/home/node/aplikacja:

...
WORKDIR /home/node/app

Następnie skopiuj pakiet.json i pakiet-lock.json, przypisz plik projektu do „węzła” użytkownika nie-root, a następnie uruchom instalację NPM

...
COPY package*.json ./
USER node
RUN npm install

Skopiuj kod aplikacji z odpowiednimi uprawnieniami do katalogu aplikacji na kontenerze

...
COPY --chown=node:node . .

Expose Command, aby wystawić port:

...
EXPOSE 3000
CMD [ "node", "app.js" ]

Ostateczna wersja DockerFile powinna wyglądać tak:

FROM node:12-alpine
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package*.json ./
USER node
RUN npm install
COPY --chown=node:node . .
EXPOSE 3000
CMD [ "node", "app.js" ]

Zbuduj obraz i uruchom pojemnik

Uruchom następujące polecenie, aby wygenerować obraz Docker

docker build -t <<image_name>> .

Wygeneruje to docker Image, który można sprawdzić za pomocą polecenia Docker Images. Możliwe jest teraz utworzenie pojemnika z tym obrazem za pomocą następującego polecenia:

docker run — name <<container_name>> -p 3000:3000 -d <<image_name>>

To uruchomi kontener, który możesz zweryfikować, uruchamiając polecenie Docker PS. Teraz w przeglądarce, jeśli uzyskujesz dostęp do http: // localhost: 3000, zobaczysz aplikację Node.js. Jednak tym razem teraz działa z twojego kontenera Docker.

Wniosek

Rozwój z kontenerem Docker jest bardzo prosty i łatwy. Docker pomaga programistom pakować i uruchamiać aplikacje jako kontenery. W tym samouczku nauczyliśmy się budować aplikację node.js za pomocą kontenera Docker na Ubuntu. W nadchodzących artykułach napiszymy o większych zastosowaniach Docker, a także omówimy inne narzędzia.

Badać