Ovdje je korak po korak pregled kako koristiti Node js na dockeru. Ali prvo popričajmo malo o Dockeru. Docker je otvorena platforma za razvoj, pokretanje i isporuku aplikacija. S Dockerom ćete moći odvojiti svoje aplikacije od infrastrukture što vam zauzvrat pomaže da brzo isporučite softver.
Također, docker će vam pomoći upravljati svojom infrastrukturom na sličan način na koji upravljate svojim aplikacijama. Možete iskoristiti prednosti Dockera zahvaljujući njegovim značajkama koje uključuju testiranje, kupovinu i brzu implementaciju koda. Korištenjem ovih značajki možete smanjiti kašnjenje između pisanja koda i njegovog pokretanja u proizvodnji.
Također pročitajte: Node js s MySQL: Sve što trebate znati
Objašnjavajući Node js on lučki radnik s primjerom:
Ovdje ćemo izraditi primjer jednostavne Node.js aplikacije. Morate stvoriti direktorij na vašem lokalnom računalu pod nazivom node-docker, a zatim nas slijedite zajedno s primjerom za stvaranje jednostavnog Rest API-ja.
$ cd [path to your node-docker directory] $ npm init -y $ npm install ronin-server ronin-mocks $ touch server.js
Zatim morate dodati neke jednostavne kodove za obradu REST zahtjeva. Za nas ćemo koristiti lažni poslužitelj kako bismo se mogli usredotočiti na Dockerizaciju aplikacije i ne koristiti velik dio stvarnog koda.
Nakon ovoga sve što trebate učiniti je otvoriti ovaj direktorij u vašem omiljenom IDE-u i unijeti sljedeći kod u .js datoteku poslužitelja.
const ronin = require( 'ronin-server' ) const mocks = require( 'ronin-mocks' ) const server = ronin.server() server.use( '/', mocks.server( server.Router(), false, true ) ) server.start()
Koristimo poslužitelj za izrugivanje i on se zove Ronin.js i prema zadanim postavkama bit će naveden na portu 8000. Ovdje možete jednostavno POST zahtjeve do korijena (/) i nakon te krajnje točke i bilo koje JSON strukture. Poslane na poslužitelj bit će spremljene u memoriju.
Testiranje aplikacije:
Dakle, počnimo pokretati našu aplikaciju i provjeriti radi li ispravno. Sada ponovno otvorite svoj terminal i idite na radni direktorij koji ste stvorili.
$ node server.js
Sada da testiramo radi li aplikacija ispravno. Prvo ćemo POST-ovati neki json u API, a zatim napraviti GET zahtjev da vidimo jesu li podaci spremljeni ili ne. Sada otvorite novi terminal i pokrenite naredbu danu u nastavku:
$ curl --request POST \ --url http://localhost:8000/test \ --header 'content-type: application/json' \ --data '{ "msg": "testing" }' {"code":"success","payload":[{"msg":"testing","id":"31f23305-f5d0-4b4f-a16f-6f4c8ec93cf1","createDate":"2020-08-28T21:53:07.157Z"}]} $ curl http://localhost:8000/test {"code":"success","meta":{"total":1,"count":1},"payload":[{"msg":"testing","id":"31f23305-f5d0-4b4f-a16f-6f4c8ec93cf1","createDate":"2020-08-28T21:53:07.157Z"}]}
Sada se ponovno vratite na terminal na kojem rade naši poslužitelji. Vidjet ćete dolje navedene zahtjeve:
2020-XX-31T16:35:08:4260 INFO: POST /test 2020-XX-31T16:35:21:3560 INFO: GET /test
Stvaranje Dockerfiles za Node.js
Sada pogledajte kako ćete stvoriti Dockerfile.
Možete reći da je Dockerfile tekstualni dokument koji sadrži sve naredbe koje korisnik može pozvati. Kada korisnik pozove naredbeni redak za sastavljanje slike. Docker će pročitati upute i izvršiti ih jednu po jednu i kao rezultat toga stvoriti Docker sliku.
Sada ćemo proći kroz stvaranje Dockerfilea za našu aplikaciju. Sada ćete vidjeti u korijenu vašeg radnog direktorija, a zatim kreirajte datoteku pod nazivom Dockerfile i otvorite je u svom uređivaču teksta.
Prva stvar koju morate učiniti je dodati redak u našu Docker datoteku koja govori vašem Dockeru. Koja je osnova slike koju biste željeli koristiti za svoju aplikaciju.
FROM node:12.18.1
Ali dobra stvar je što možete jednostavno naslijediti bazu slike od drugih slika. Dakle, umjesto stvaranja vlastite osnovne slike, možete jednostavno koristiti službeni Node.js. Node.js ima alate koji već imaju pakete koji će vam trebati za pokretanje Node.js aplikacije.
Možete stvoriti Docker slike u JavaScriptu, morate napisati nešto poput onoga što smo dali u nastavku:
class MyImage extends NodeBaseImage {}
Time ćete moći stvoriti klasu MyImage koja je naslijedila funkcionalnost od osnovne klase NodeBaseImage.
Baš poput ove naredbe moći ćete koristiti naredbu FROM. Putem ove naredbe možete reći Dockeru da uključi u naše slike sve funkcionalnosti iz čvora:12.18.1 slika.
Kako biste ovo olakšali prilikom pokretanja ostalih naredbi, možete stvoriti radni direktorij.
Ovo će sada obavijestiti Docker da koristi ovu određenu stazu kao zadanu lokaciju za sljedeće naredbe. Korištenjem ove metode ne morate upisivati pune staze datoteka, ali možete koristiti relativne staze na temelju radnog direktorija.
WORKDIR /app
Nakon što ste preuzeli Node.js, prva stvar koju morate učiniti je instalirati npm pakete. Ono što će učiniti jest osigurati da imate sve njegove ovisnosti instalirane u direktoriju node_modules gdje će ih vrijeme izvođenja čvora moći pronaći.
Sada prije nego što pokrenete npm instalaciju, trebate staviti svoju datoteku package.json i package-lock.json u svoju sliku. Za to možete koristiti naredbu COPY. Naredbe COPY rade dvije stvari. Prva stvar je da govori Dockeru koje datoteke želite kopirati u sliku. Druga stvar govori Dockeru gdje datoteka želi biti kopirana. Možete kopirati datoteku package.json i package-lock.json u naš radni direktorij – /app.
COPY package.json package.json COPY package-lock.json package-lock.json
Sada, kao što vidite, imamo naše package.json datoteke unutar slike. Sada ćemo koristiti naredbu RUN da izvršimo naredbu npm install.
RUN npm install
Prelazeći na sljedeću stvar, dodat ćemo izvorni kod na sliku. Koristit ćemo naredbu COPY baš kao što smo učinili s našim datotekama package.json iznad.
COPY . .
Zadnje što moramo učiniti je reći Dockeru koju naredbu želimo pokrenuti. Kada se vaša slika izvodi unutar spremnika. Možete pokrenuti CMD naredbu.
CMD [ "node", "server.js" ]
Sada možete vidjeti kompletan Dockerfile.
FROM node:12.18.1 WORKDIR /app COPY package.json package.json COPY package-lock.json package-lock.json RUN npm install COPY . . CMD [ "node", "server.js" ]
Zaključak:
U ovom smo postu govorili o Node js na dockeru. Također smo naučili o stvaranju docker slika pomoću Dockerfilea. Označavanje naših slika i upravljanje slikama. Nadamo se da će vam ove informacije biti korisne. Hvala vam na čitanju.