Menü
c't Magazin

Node.js-Anwendungen in Docker-Container verpacken

Verpackt man ein fertiges Node.js-Projekt in einen Docker-Container, können es andere leicht auf ihrem System ausführen. Es gibt aber auch weitere Vorteile.

vorlesen Drucken Kommentare lesen
Node.js-Anwendungen in Docker-Container verpacken

Inhaltsverzeichnis

Eine Webanwendung in ein Docker-Image zu verpacken ist eine gute Idee – spätestens dann, wenn man sie anderen Entwicklern oder Nutzern bereitstellen möchte. Damit Docker ein solches Container-Image bauen kann, braucht es eine Bauanleitung, das Dockerfile. Das beginnt immer mit der Anweisung FROM, die ein Basis-Image festlegt. Auf diesem basiert dann später der Container.

Doch meistens sind viele Komponenten, die beim Bau eines Containers benötigt werden, für den Betrieb nicht mehr sinnvoll. Sie blähen das Image unnötig auf oder schaffen sogar Angriffspotenzial. Um Images auf das Nötigste zu reduzieren, hat Docker "Multistage Builds" eingeführt. Die erste Stufe kompiliert beispielsweise eine Software und übergibt das Kompilat an die nächste Stufe, die es dann ausführt. Nach getaner Arbeit wirft Docker die erste Stufe weg.

Als Beispiel dient eine statische Webseite, die ein auf JavaScript basierender Markdown-Konverter aus Vorlagen zusammengestellt hat. Für den Betrieb der Seite ist der gesamte Node.js-Unterbau nicht mehr nötig und wird durch einen Nginx-Webserver ersetzt. Eine gute Gelegenheit, den Ballast abzuwerfen und ein Multistage-Image zu bauen. Das gesamte Projekt inklusive des fertigen Dockerfiles finden Sie auf GitHub zum Download.

Immer mehr Wissen. Das digitale Abo für IT und Technik.

  • Zugriff auf alle Inhalte von heise+
  • exklusive Tests, Ratgeber & Hintergründe: unabhängig, kritisch fundiert
  • c't, iX, Technology Review, Mac & i, Make, c't Fotografie direkt im Browser lesen
  • einmal anmelden – auf allen Geräten lesen - jederzeit kündbar
  • erster Monat gratis, danach monatlich 9,95 €
  • Wöchentlicher Newsletter mit persönlichen Leseempfehlungen des Chefredakteurs
GRATIS-Monat beginnen Jetzt GRATIS-Monat beginnen Mehr Informationen zu heise+