La oss for eksempel si at du ikke vil installere Node.js på datamaskinen din og vil fremdeles utvikle Node.js applikasjoner eller teste en eksisterende. I så fall kan du bare bruke en node.js Docker-container.
Et annet eksempel er hvor du trenger å teste din Node.js-applikasjon på forskjellige versjoner av Node.js. I så fall kan du bruke annen node.js Docker-containere med annen versjon av Node.js installert for å teste applikasjonen din.
I denne artikkelen vil jeg vise deg hvordan du konfigurerer Node.js utviklingsmiljø ved hjelp av Docker. Så la oss komme i gang.
Sette opp prosjektkatalog:
I denne delen vil jeg klone en av nodene mine.js API-app fra GitHub til min ~ / Prosjekter / katalog bare for å teste Docker Node.js utviklingsmiljø Jeg er i ferd med å vise deg hvordan du konfigurerer. Dette er ikke nødvendig. Du kan alltid bruke din egen Node.js app hvis du vil.
Først skal jeg navigere til min ~ / Prosjekter / katalog som følger:
$ cd ~ / Prosjekter /
Nå skal jeg klone min shovon8 / vinkel-helt-api GitHub-depot som følger:
$ git klon https: // github.com / shovon8 / angular-hero-api
Prosjektfilene vil være i vinkel-helt-api / katalog som du kan se på skjermbildet nedenfor.
Node.js Docker-bilder:
Det er offisielle containerbilder for annen versjon av Node.js bygget på toppen av forskjellige Linux-distribusjoner på DockerHub. Besøk https: // hub.docker.com / _ / node / fra favorittleseren din for å finne Node.js image du trenger. Som du kan se, kodenavnet for alle knutepunktene.js-bilder er oppført på DockerHub-siden i Node.js. Du kan enten bruke Debian Jessie / Stretch, Alpine, ChakraCore Linux distribusjonsbaserte bilder for forskjellige versjoner av Node.js.
Vanligvis trenger du ikke å vite mye for å bruke en node.js Docker-bilde. Hvis du vil bruke Node.js versjon 12, så er alt du trenger å gjøre å skrive node: 12 når du lager en container. For Node.js 10, det er det node: 10. For Node.js 8, det er det node: 8. Det er så enkelt.
Konfigurere noden.js utviklingsmiljø:
I denne delen skal jeg konfigurere Linux-aliaser for min node.js API-app. På den måten kan jeg enkelt bruke hvilken som helst versjon av Node.js Jeg vil kjøre appen min.
I hver av nodene mine.js prosjektkatalog, vil jeg opprette en ny fil kilde. I den filen vil jeg beholde kommandoaliasene som node12 for Node.js 12 kjøretid, node10 for Node.js 10 kjøretid, node8 for Node.js 8 kjøretid på Docker. Du kan gjenbruke det samme kilde fil med liten modifikasjon på den andre noden din.js prosjekter også.
Naviger først til prosjektkatalogen din som følger:
$ cd angular-hero-api /
Lag nå en kilde fil med følgende kommando:
$ nano kilde
Skriv inn følgende linjer i kildefilen.
alias node12 = 'docker run -it --rm --name hero-api -p 4242: 4242 -v"$ PWD: / usr / src / app" -w / usr / src / app node: 12 '
alias node10 = 'docker run -it --rm --name hero-api -p 4242: 4242 -v
"$ PWD: / usr / src / app" -w / usr / src / app node: 10 '
alias node8 = 'docker run -it --rm --name hero-api -p 4242: 4242 -v
"$ PWD: / usr / src / app" -w / usr / src / app node: 8 '
Her, -den betyr, kjør beholderen i interaktiv modus.
-rm betyr å fjerne beholderen automatisk når den ikke lenger er nødvendig.
-Navn helt-api definerer et navn på containeren.
-s 4242: 4242 betyr containerporten 4242 blir videresendt til destinasjonsporten (på datamaskinen din) 4242. Formatet for dette alternativet er -p destinasjon: kilde. Husk at den første porten før kolon (:) er destinasjonsporten. Hvis du vil få tilgang til applikasjonen din på en annen port enn 4242 på datamaskinen din, må du endre destinasjonsporten. Hvis applikasjonene kjører på en annen port enn 4242. Da må du endre kildeporten.
MERK: Siden jeg bare vil bruke en av containerne til enhver tid, er Navn og destinasjonsport kan være det samme. Hvis du ønsker å kjøre eller teste din Node.js-applikasjon på flere noder.js-versjon samtidig, så sørg for at Navn og destinasjonsport er forskjellig for hver av containerne i kildefilen.
Når du er ferdig, lagrer du filen ved å trykke på
Aktiver nå aliasene med følgende kommando:
$ kilde kilde
Nå kan du kjøre hvilken som helst versjon av node-kjøretid når du trenger det node12, node10, node8 kommandoer som du kan se på skjermbildet nedenfor.
Kjører Hero API-node.js App:
La oss nå se hvordan du kjører vinkel-helt-api app fra GitHub-depotet mitt med dette oppsettet. Jeg skal bruke Node.js 12 kjøretid først, deretter går du til Node.js 10 og Node.js 8 kjøretid for å vise deg at den fungerer i hver av versjonene.
API-appen har ingen nodemoduler installert. Så du må installere alle nødvendige nodemoduler med npm installere kommandoen som følger:
$ node12 npm installasjon
Nodemodulene er installert som du kan se på skjermbildet nedenfor.
Kjør nå Node.js API-app som følger:
$ node12 npm run test
Som du kan se, kjører API-serveren på port 4242 på containeren. Jeg videresendte også porten til 4242 på datamaskinen min. Så jeg burde kunne få tilgang til den på port 4242.
Ja, jeg får tilgang til det. Det fungerer som forventet.
Stopp nå beholderen ved å trykke på
La oss prøve å kjøre API-appen med Node.js versjon 10.
$ node10 npm kjørtestSom du ser, kjører den.
Det fungerer for Node.js 10 også.
Til slutt, la oss prøve Node.js versjon 8.
$ node8 npm run testAPI-appen kjører på Node.js 8 kjøretid også.
Perfekt! Det fungerer riktig.
Så det er slik du setter opp Node.js utviklingsmiljø ved hjelp av Docker. Takk for at du leser denne artikkelen.