Sign inSign up

lukystreik/node-express-pg-server

By lukystreik

Updated over 2 years ago

Image
0

122

lukystreik/node-express-pg-server repository overview

Dockerfile für Node.js Postgres Backend App

Dieses Dockerfile erstellt ein Docker-Image mit Ihrer Node.js-Anwendung.

Source Code stammt von https://github.com/bezkoder/angular-17-node-project/tree/master

Verwendung des Containers

docker run -e DB_USER=nutzer -e DB_PASSWORD=passwort -e DB_NAME=namederdb -e DB_HOST=hostname_oder_ip_des_db_servers lukystreik/node-express-pg-server:latest 

Erstellen des Containers (einfacher Weg)

im Hauptordner, in dem die Dockerfile liegt aufrufen

make all

Schritte

  1. Kopieren der Dateien: Es kopiert Ihre package.json und package-lock.json in das Image.
  2. Installation der Abhängigkeiten: Es installiert die in package.json definierten Abhängigkeiten.
  3. Kopieren der Anwendung: Es kopiert dann den Rest Ihrer Anwendung in das Image.
  4. Definieren des Standardbefehls: Es definiert den Befehl node server.js als Standardbefehl, der ausgeführt wird, wenn ein Container aus diesem Image gestartet wird.
  5. Öffnen des Ports: Der Port 8081 wird für eingehende Verbindungen geöffnet.

Wichtige Hinweise

  • Sie müssen dieses Dockerfile in demselben Verzeichnis wie Ihre package.json und den Rest Ihrer Anwendung speichern.
  • Sie können dann das Docker-Image mit dem Befehl docker build . erstellen.
  • Vergessen Sie nicht, Ihre Anwendung so zu konfigurieren, dass sie auf den richtigen Port (in diesem Fall 8081) hört.
  • Stellen Sie sicher, dass Ihre Produktionsdatenbank korrekt konfiguriert ist, wenn Sie eine verwenden.

Aufgabe der ENTRYPOINT Zeile

In diesem Dockerfile wird das Startskript in den Container kopiert und dann als Einstiegspunkt (ENTRYPOINT) verwendet. Die Argumente node server.js werden an das Startskript übergeben und ausgeführt, nachdem das Skript die Konfigurationsdatei aktualisiert hat.

Bitte beachten Sie, dass Sie die Umgebungsvariable MY_ENV_VAR beim Starten des Containers mit dem -e Flag setzen müssen, z.B. docker run -e MY_ENV_VAR=myvalue ....

dockerignore

Diese .dockerignore-Datei verhindert, dass die Datei Makefile, alle Dateien im Verzeichnis ./dockerbuild/ und die Datei Dockerfile in den Docker-Build-Kontext aufgenommen werden. Sie können diese Datei in das Stammverzeichnis Ihres Projekts einfügen. Wenn Sie dann den Docker-Build-Befehl ausführen, werden diese Dateien und Verzeichnisse ignoriert.

Bitte beachten Sie, dass die Pfade in der .dockerignore-Datei relativ zum Ort der .dockerignore-Datei selbst sind. In diesem Fall bedeutet ./dockerbuild/*, dass alle Dateien im Verzeichnis dockerbuild im selben Verzeichnis wie die .dockerignore-Datei ignoriert werden. Wenn das dockerbuild-Verzeichnis sich an einem anderen Ort befindet, müssen Sie den Pfad entsprechend anpassen.

ENV Variablen

  • HOST: $DB_HOST
  • USER: $DB_USER
  • PASSWORD: $DB_PASSWORD
  • DB: $DB_NAME
Default Datenbank Verbindung
  • HOST: "localhost"
  • USER: "postgres"
  • PASSWORD: "123"
  • DB: "testdb"

Steuerung des docker build Prozesses ueber make

folgende Möglichkeiten kann make

  1. **build erstellt das image lokal
  2. **push (t) das image in das repo (hier dockerhub)
  3. **all macht build und push in einem

wichtige key features des build

  • rootless
  • die urspruenglich unter app/config/db.config.js hinterlegten Datenbank Verbindungsdaten wurden über start.sh nach außen über env verfügbar gemacht
  • aktuelleste node version im schlanken kuratierten nodejs alpine container
  • docker build über klassich makefile steuerbar

Tag summary

Content type

Image

Digest

sha256:c780cb9a9

Size

56.6 MB

Last updated

over 2 years ago

docker pull lukystreik/node-express-pg-server