Laten we bijvoorbeeld zeggen dat u Node . niet wilt installeren.js op uw computer en u wilt toch Node . ontwikkelen.js-applicaties of test een bestaande. In dat geval kunt u gewoon een Node.js Docker-container.
Een ander voorbeeld is waar u uw Node moet testen.js-toepassing op verschillende versies van Node.js. In dat geval kunt u verschillende Node.js Docker-containers met een andere versie van Node.js geïnstalleerd om uw toepassing te testen.
In dit artikel laat ik je zien hoe je Node . instelt.js-ontwikkelomgeving met Docker. Dus laten we beginnen.
Projectmap instellen:
In deze sectie zal ik een van mijn Node . klonen.js API-app van GitHub naar mijn ~/Projecten/ directory alleen voor het testen van Docker Node.js-ontwikkelomgeving Ik sta op het punt je te laten zien hoe je moet instellen. Dit is niet verplicht. Je kunt altijd je eigen Node gebruiken.js-app als je wilt.
Eerst ga ik naar mijn ~/Projecten/ map als volgt:
$ cd ~/Projecten/
Nu ga ik mijn . klonen shovon8/hoekig-held-api GitHub-repository als volgt:
$ git kloon https://github.com/shovon8/angular-held-api
De projectbestanden bevinden zich in de hoekige-held-api/ map zoals je kunt zien in de onderstaande schermafbeelding.
Knooppunt.js Docker-afbeeldingen:
Er zijn officiële container-images voor verschillende versies van Node.js gebouwd bovenop verschillende Linux-distributies op DockerHub. Bezoek https://hub.havenarbeider.com/_/node/ vanuit je favoriete browser om de Node te vinden.js-afbeelding die je nodig hebt. Zoals u kunt zien, is de tagnaam voor alle Node.js-afbeeldingen worden weergegeven op de DockerHub-pagina van Node.js. U kunt ofwel Debian Jessie/Stretch, Alpine, ChakraCore Linux-distributiegebaseerde afbeeldingen gebruiken voor verschillende versies van Node.js.
Meestal hoef je niet veel te weten om een Node te gebruiken.js Docker-afbeelding. Als u Node . wilt gebruiken.js versie 12, dan hoef je alleen maar te schrijven knoop:12 wanneer je een container maakt. Voor Knooppunt.js 10, het is knoop: 10. Voor Knooppunt.js 8, het is knoop: 8. Het is zo simpel.
Het knooppunt configureren.js-ontwikkelomgeving:
In deze sectie ga ik Linux-opdrachtaliassen configureren voor mijn Node.js API-app. Op die manier kan ik gemakkelijk elke versie van Node . gebruiken.js Ik wil mijn app draaien.
In elk van mijn Node.js-projectdirectory, ik zal een nieuw bestand maken bron. In dat bestand bewaar ik de commando-aliassen zoals knoop12 voor Knooppunt.js 12 runtime, knooppunt10 voor Knooppunt.js 10 runtime, knooppunt8 voor Knooppunt.js 8 runtime draait op Docker. U kunt hetzelfde hergebruiken bron bestand met een kleine wijziging op uw andere Node.js-projecten ook.
Navigeer eerst als volgt naar uw projectdirectory:
$ cd hoekig-held-api/
Maak nu een bron bestand met het volgende commando:
$ nano-bron
Typ nu de volgende regels in het bronbestand:.
alias node12='docker run -it --rm --name hero-api -p 4242:4242 -v"$PWD:/usr/src/app" -w /usr/src/app-knooppunt:12'
alias node10='docker run -it --rm --name hero-api -p 4242:4242 -v
"$PWD:/usr/src/app" -w /usr/src/app-knooppunt:10'
alias node8='docker run -it --rm --name hero-api -p 4242:4242 -v
"$PWD:/usr/src/app" -w /usr/src/app-knooppunt:8'
Hier, -het betekent, voer de container uit in interactieve modus.
-rm betekent dat de container automatisch wordt verwijderd wanneer deze niet langer nodig is.
-naam held-api definieert een naam voor de container.
-blz. 4242:4242 betekent de containerhaven; 4242 wordt doorgestuurd naar de bestemmingspoort (op uw computer) 4242. Het formaat van deze optie is -p bestemming:bron. Onthoud dat de eerste poort voor de dubbele punt (:) de bestemmingspoort is. Als u toegang wilt tot uw toepassing op een andere poort dan 4242 op uw computer, moet u de bestemmingspoort wijzigen change. Als uw toepassingen op een andere poort draaien dan 4242. Dan moet je de bronpoort wijzigen.
OPMERKING: Omdat ik slechts één van de containers tegelijk zal gebruiken, is de naam en haven van bestemming kan hetzelfde zijn. Als u uw Node wilt uitvoeren of testen.js-toepassing op meerdere Node.js-versie tegelijkertijd, zorg er dan voor dat de naam en haven van bestemming is verschillend voor elk van de containers in het bronbestand.
Als u klaar bent, slaat u het bestand op door op . te drukken
Schakel nu de aliassen in met de volgende opdracht:
$ bron bron
Nu kunt u elke versie van node runtime uitvoeren wanneer u maar wilt met knoop12, knooppunt10, knooppunt8 commando's zoals je kunt zien in de onderstaande schermafbeelding.
Hero API-knooppunt uitvoeren.js-app:
Laten we nu eens kijken hoe we de hoekige-held-api app uit mijn GitHub-repository met deze setup. Ik ga Node . gebruiken.js 12 runtime eerst, ga dan voor Node.js 10 en Node.js 8 runtime om u te laten zien dat het in elk van de versies werkt.
De API-app heeft geen node-modules geïnstalleerd. U moet dus alle vereiste knooppuntmodules installeren met: npm installeren commando als volgt:
$ node12 npm installeren
De node-modules zijn geïnstalleerd zoals je kunt zien in de onderstaande schermafbeelding.
Voer nu de Node . uit.js API-app als volgt:
$ node12 npm test uitvoeren
Zoals je kunt zien, draait de API-server op poort 4242 op de container. Ik heb de poort ook doorgestuurd naar 4242 op mijn computer. Dus ik zou er toegang toe moeten hebben op poort 4242.
Ja, ik heb er toegang toe. Het werkt zoals verwacht.
Stop nu de container door op te drukken
Laten we proberen de API-app uit te voeren met Node.js-versie 10.
$ node10 npm test uitvoerenZoals je kunt zien, draait hij.
Het werkt voor Node.js 10 ook.
Laten we tot slot eens proberen voor Node.js versie 8.
$ node8 npm test uitvoerenDe API-app draait op Node.js 8 runtime ook.
Perfect! Het werkt correct.
Dus zo stel je Node in.js-ontwikkelomgeving met Docker. Bedankt voor het lezen van dit artikel.