Deployhandleiding Frankfurt, Duitsland

Deploy Docker op Nodion

Staat er een Dockerfile in je repository, dan kiest Nodion de Dockerfile-strategie, bouwt de image in Frankfurt en draait die als webproces van je app. Multi-stage builds, .dockerignore en build args werken zoals je gewend bent, en kant-en-klare images uit Docker Hub, GHCR of een private registry draaien op dezelfde manier.

Op Nodion deployen ›

vanaf 1 EUR / maand

Tot € 15 welkomsttegoed bij registratie

Strategie
Dockerfile, vooraf geselecteerd als er een is
Poort
Uit EXPOSE, geen PORT-variabele
Images
Builds vanuit Git of kant-en-klare images
Regio
EU Central (Frankfurt)

Docker stap voor stap deployen

  1. Luister op 0.0.0.0 en geef de poort op met EXPOSE Nodion bouwt je Dockerfile ongewijzigd en start de CMD of het ENTRYPOINT van de image. PORT stelt Nodion niet in: je server luistert op alle interfaces op een vaste poort, en EXPOSE vertelt het aanmaakformulier welke poort dat is. Multi-stage builds werken; alleen de laatste stage draait. Dockerfile
    FROM python:3.13-slim
    WORKDIR /app
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    COPY . .
    EXPOSE 8000
    CMD ["gunicorn", "app:app", "--bind", "0.0.0.0:8000"]
  2. Maak de app aan Maak in het dashboard een applicatie aan vanuit je GitHub-, GitLab-, Bitbucket- of Gitea-repository en kies de branch en de regio EU Central. Staat er een Dockerfile in de repository, dan selecteert het formulier vooraf de Dockerfile-strategie en neemt het de poort over uit EXPOSE. Stel in een monorepo de Base directory (de buildcontext) en de naam van de Dockerfile in.
  3. Geef buildwaarden door als build args Variabelen met de optie Build op het tabblad Environment komen als Docker build args in de build terecht, dus declareer ze met ARG in de stage die ze leest. Alle andere variabelen, en gekoppelde databases zoals DATABASE_URL, bestaan pas als de container draait. Dockerfile
    FROM node:24-slim AS build
    ARG VITE_API_URL
    WORKDIR /app
    COPY . .
    RUN npm ci && npm run build
  4. Draai migraties één keer per deployment Stel je migratiecommando in als release command van de app: het draait bij elke deployment één keer vanuit de nieuwe image, voordat de nieuwe versie start, en als het mislukt, stopt de deployment en blijft de draaiende versie live. Je stelt het in met het API-veld release_command; in het dashboard verschijnt het veld voorlopig pas in de app-instellingen als previewomgevingen aanstaan. Migraties draaien in het entrypoint of het startcommando kan ook, maar dan draait elke instantie ze bij elke start.
  5. Push om te deployen Elke push naar de branch bouwt een nieuwe image in Frankfurt. Het verkeer gaat over naar die image zodra het webproces op het pad van de health check (standaard /) antwoordt met 2xx of 3xx. Een Docker-HEALTHCHECK in de image wordt genegeerd.

Goed om te weten

  • Geen PORT-variabeleLeest je server PORT, stel de variabele dan zelf in, met ENV PORT=8000 in de Dockerfile of als variabele op het tabblad Environment, en houd hem gelijk aan de poort van het webproces.
  • Kant-en-klare imagesSla de Git-build over en deploy een image uit Docker Hub, de GitHub Container Registry, de Nodion-registry of een private registry waarvan je de inloggegevens in Nodion hebt opgeslagen. Voor poort en health check gelden dezelfde regels.
  • USER, .dockerignore en de commitDe USER van de image wordt gerespecteerd, een .dockerignore in de buildcontext wordt toegepast en .git gaat nooit mee naar de build. Declareer ARG NODION_GIT_SHA om de commithash in de image te schrijven.

Wat Nodion voor je regelt

  • Deploys zonder downtime Push naar je branch en Nodion bouwt een nieuwe release. Het verkeer schakelt over zodra de nieuwe instanties hun health check doorstaan; een mislukte release laat de draaiende versie staan. Apps met een lokaal volume herstarten in plaats daarvan, omdat de schijf bij één instantie hoort.
  • Databases naast de app Managed PostgreSQL, pgvector, MySQL, Valkey en ClickHouse in dezelfde regio. Gekoppelde databases komen binnen als DATABASE_URL, REDIS_URL of CLICKHOUSE_URL.
  • Previews per pull request Zet previews aan en pull requests uit je repository krijgen een eigen app met een eigen URL en nieuwe, lege databases, automatisch of handmatig aangemaakt. Forks en pull requests van bots worden overgeslagen.
  • Workers, cronjobs en schalen Draai workers als extra processen van dezelfde app, plan jobs op het tabblad Cron en schaal elk proces naar maximaal 16 instanties.
  • Releasestap Met buildpacks draait een release:-regel in het Procfile bij elke nieuwe build. Dockerfile-apps, en redeploys of rollbacks naar een eerdere image, gebruiken een releasecommando dat op de app zelf is ingesteld en dat ook voorrang heeft op de Procfile-regel. Bij statische sites draait een releasestap in een image die alleen de gebouwde bestanden bevat.
  • Logs en metrics Build-, release- en runtimelogs plus metrics voor CPU, geheugen, schijf en netwerk van elke instantie in het dashboard.
  • Domeinen en HTTPS Een standaardhostnaam met HTTPS vanaf de eerste deploy; je eigen domeinen krijgen automatisch certificaten.

Verder lezen

Docker op Nodion: vragen en antwoorden

Heb ik een Dockerfile nodig om op Nodion te deployen?

Nee. De buildpacks van Nodion bouwen Node.js-, Python-, PHP-, Ruby-, Java-, Go-, Rust-, .NET- en Elixir-apps zonder Dockerfile. Een Dockerfile is de juiste keuze als je een specifieke base image, een ongebruikelijke toolchain of volledige controle over de build wilt.

Waarom wordt mijn container nooit klaar voor gebruik?

Nodion wacht op een 2xx of 3xx op het pad van de health check, op de poort van het webproces. Controleer of de server op 0.0.0.0 luistert, niet op 127.0.0.1, en precies op die poort, en of het pad zonder login bereikbaar is. Na 10 minuten wordt de release afgebroken en blijft de oude versie verkeer bedienen.

Kan ik een image uit Docker Hub of GHCR deployen?

Ja. Kies een kant-en-klare image in plaats van een Git-repository. Publieke images werken direct; sla voor een private registry eerst de inloggegevens op.

Draait Nodion mijn docker-compose.yml?

Niet als docker compose up. Een experimentele import leest het bestand één keer in wanneer je de app aanmaakt en zet het om naar één app met managed databases; zie Docker Compose op Nodion.

Waar draait mijn Docker-app?

In de regio EU Central in Frankfurt, Duitsland. Build, registry, de app en de bijbehorende databases, volumes, buckets, logs en metrics blijven in die regio, en de API en het control plane van Nodion worden in Duitsland gehost. Nodion GmbH is gevestigd in Stuttgart.

Kan ik Docker gebruiken volgens de AVG (GDPR)?

Nodion biedt hiervoor de basis: Nodion GmbH is gevestigd in Stuttgart (Duitsland). Kies je de regio Frankfurt, dan draaien de app, de databases en de volumes in Duitsland. De verwerkersovereenkomst (DPA, art. 28 AVG) sluit je elektronisch af in het dashboard. Of je configuratie aan de AVG voldoet, hangt ook af van hoe je de app instelt en gebruikt.

Wat kost het om Docker op Nodion te draaien?

Een appinstantie kost vanaf 1 EUR per maand. De configuratie in het kostenoverzicht kost 2 EUR per maand: App 2 EUR. Prijzen zijn excl. btw en worden per seconde gefactureerd, en je kiest grotere formaten of meer instanties wanneer je ze nodig hebt.

Kan ik een eigen domein gebruiken voor mijn Docker-app?

Ja. Elke app krijgt een standaardhostnaam met HTTPS. Voeg je eigen domein toe op het tabblad Domains van de app; het TLS-certificaat wordt automatisch uitgegeven en vernieuwd.

Geef je agent een cloud.

Ontvang tot € 15 welkomsttegoed bij je registratie.

Doorgaan met GitHub

of met e-mail

Blijf op de hoogte.

Productnieuws, geen spam. Je kunt je altijd weer afmelden.