Dockerfile
Ein Dockerfile committen. Nodion baut dieses Image und führt es aus.
Unter Applications → New ein GitRepo verbinden und Dockerfile wählen. Der Scan bevorzugt das, wenn er ein Dockerfile findet. Buildpacksnehmen, wenn Nodion die Runtime installieren soll.
Ein Prebuilt image überspringt den Git-Build. Dieses Image in eine Registrypushen und deployen. Der Docker ComposeImport beim Anlegen ist experimentell und nicht diese Strategie.
Was du setzt
- Base directory: der Build-Context und wo das Dockerfile in einem Monorepo liegt.
- Dockerfile name: meist
Dockerfile. Der Scan listet auchDockerfile.*. - Ports: vorausgefüllt aus TCP-
EXPOSEin dieser Datei. Nach Bedarf ergänzen oder entfernen. Nach dem Anlegen liegen Ports am Prozess web.
Strategie, Pfad und Base directory später unter Settings ändern. Das gilt beim nächsten Deploy.
Was ein Build tut
- Klont den Branch.
- Nimmt das Base directory als Build-Context. Ein
.dockerignoredort wird beachtet..gitwird nie geschickt. - Baut das benannte Dockerfile. Multi-Stage-Dateien funktionieren. Es gibt keinen Stage-Picker, also läuft die Default-Final-Stage.
- Pusht das Image und startet den Prozess
webdaraus.
Env-Vars mit Markierung Build im Tab Environment gehen als Docker-Build-Args (ARG). Runtime-Vars gelten, wenn der Prozess startet, beim nächsten Deploy. Secrets bleiben nach dem Speichern nur noch schreibbar.
BuildKit-Secrets (RUN --mount=type=secret) sind nicht verdrahtet. Werte, die du zur Build-Zeit brauchst, in diese Build-Vars legen.
Lauschen und Health
Nodion setzt kein PORT an einer Dockerfile-App. Diese Env ist für Buildpacks. Den Server an den Port des Web-Prozesses binden (aus EXPOSE oder was du unter Processes setzt). Ist die Liste leer, nimmt Nodion das Image-EXPOSE, dann 8080.
Auf allen Interfaces lauschen, nicht nur localhost. Image-CMD / ENTRYPOINT ist der Default-Start. Den Command am Prozess überschreiben, wenn nötig.
Readiness ist ein HTTP GET auf den Health check path in Settings (Default /) am Web-Port. Eine 2xx- oder 3xx-Antwort ist healthy. Ein Docker-HEALTHCHECK im Image wird ignoriert.
Das Image-USER wird beachtet. Ein unbekannter User-Name lässt das Deploy fehlschlagen.