Guide de déploiement Francfort, Allemagne

Déployez Docker sur Nodion

Si votre dépôt contient un Dockerfile, Nodion choisit la stratégie Dockerfile, construit l'image à Francfort et l'exécute comme processus web de votre app. Les builds multi-stage, .dockerignore et les build args fonctionnent comme vous en avez l'habitude, et les images préconstruites issues de Docker Hub, GHCR ou d'un registre privé tournent de la même façon.

Déployer sur Nodion ›

à partir de 1 EUR / mois

Jusqu'à 15 € de crédit de bienvenue à l'inscription

Stratégie
Dockerfile, présélectionnée s'il en existe un
Port
Depuis EXPOSE, pas de variable PORT
Images
Builds depuis Git ou images préconstruites
Région
EU Central (Francfort)

Déployez Docker étape par étape

  1. Écoutez sur 0.0.0.0 et déclarez le port avec EXPOSE Nodion construit votre Dockerfile tel quel et lance le CMD ou l'ENTRYPOINT de l'image. Il ne définit pas PORT : votre serveur écoute sur toutes les interfaces, sur un port fixe, et EXPOSE indique au formulaire de création lequel. Les builds multi-stage fonctionnent ; c'est le dernier stage qui s'exécute. 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. Créez l'app Dans le dashboard, créez une application depuis votre dépôt GitHub, GitLab, Bitbucket ou Gitea, et choisissez la branche et la région EU Central. Si le dépôt contient un Dockerfile, le formulaire présélectionne la stratégie Dockerfile et reprend le port de EXPOSE. Dans un monorepo, définissez le champ Base directory (le contexte de build) et le nom du Dockerfile.
  3. Transmettez les valeurs de build sous forme de build args Les variables avec l'option Build dans l'onglet Environment arrivent dans le build comme build args Docker : déclarez-les donc avec ARG dans le stage qui les lit. Toutes les autres variables, ainsi que les bases de données rattachées comme DATABASE_URL, n'existent qu'une fois le conteneur lancé. Dockerfile
    FROM node:24-slim AS build
    ARG VITE_API_URL
    WORKDIR /app
    COPY . .
    RUN npm ci && npm run build
  4. Exécutez les migrations une fois par déploiement Définissez votre commande de migration comme commande de release de l'app : elle s'exécute une fois par déploiement depuis la nouvelle image, avant le démarrage de la nouvelle version, et si elle échoue, le déploiement s'arrête tandis que la version en cours reste en ligne. Définissez-la avec le champ d'API release_command ; dans le dashboard, le champ n'apparaît pour l'instant dans les paramètres de l'app qu'une fois les environnements de preview activés. Lancer les migrations dans l'entrypoint ou la commande de démarrage fonctionne aussi, mais chaque instance les exécute alors à chaque démarrage.
  5. Poussez pour déployer Chaque push sur la branche construit une nouvelle image à Francfort. Le trafic bascule vers elle dès que le processus web renvoie un code 2xx ou 3xx sur le chemin du health check (/ par défaut). Un HEALTHCHECK Docker dans l'image est ignoré.

Bon à savoir

  • Pas de variable PORTSi votre serveur lit PORT, définissez cette variable vous-même, avec ENV PORT=8000 dans le Dockerfile ou comme variable dans l'onglet Environment, et gardez-la identique au port du processus web.
  • Images préconstruitesSans passer par un build depuis Git, déployez une image issue de Docker Hub, du GitHub Container Registry, du registre Nodion ou d'un registre privé dont vous avez enregistré les identifiants dans Nodion. Les mêmes règles s'appliquent au port et au health check.
  • USER, .dockerignore et le commitLe USER de l'image est respecté, un .dockerignore dans le contexte de build s'applique, et .git n'est jamais envoyé au build. Déclarez ARG NODION_GIT_SHA pour inscrire le hash du commit dans l'image.

Ce que Nodion gère pour vous

  • Déploiements sans interruption Faites un push sur votre branche : Nodion construit une nouvelle release. Le trafic bascule lorsque les nouvelles instances réussissent leur health check ; si la release échoue, celle en cours reste active. Les apps avec un volume local redémarrent, car le disque appartient à une seule instance.
  • Bases de données à côté de l'app PostgreSQL, pgvector, MySQL, Valkey et ClickHouse managés, dans la même région. Les bases de données rattachées arrivent sous forme de DATABASE_URL, REDIS_URL ou CLICKHOUSE_URL.
  • Previews par pull request Activez les previews, et les pull requests de votre dépôt obtiennent leur propre app, avec sa propre URL et des bases de données neuves et vides, créées automatiquement ou à la main. Les pull requests issues de forks ou de bots sont ignorées.
  • Workers, cron jobs et mise à l'échelle Exécutez les workers comme processus supplémentaires de la même app, planifiez des tâches dans l'onglet Cron et mettez chaque processus à l'échelle jusqu'à 16 instances.
  • Étape de release Avec les buildpacks, une ligne release: du Procfile s'exécute à chaque nouveau build. Les apps Dockerfile, ainsi que les redéploiements ou les rollbacks vers une image antérieure, utilisent une commande de release définie sur l'app elle-même, qui prime aussi sur la ligne du Procfile. Sur les sites statiques, l'étape de release s'exécute dans une image qui ne contient que les fichiers générés par le build.
  • Logs et métriques Logs de build, de release et d'exécution, ainsi que les métriques CPU, mémoire, disque et réseau de chaque instance, dans le dashboard.
  • Domaines et HTTPS Un nom d'hôte par défaut avec HTTPS dès le premier déploiement, et des certificats automatiques pour vos propres domaines.

Pour aller plus loin

Docker sur Nodion : questions et réponses

Ai-je besoin d'un Dockerfile pour déployer sur Nodion ?

Non. Les buildpacks de Nodion construisent sans Dockerfile les apps Node.js, Python, PHP, Ruby, Java, Go, Rust, .NET et Elixir. Un Dockerfile est le bon choix si vous voulez une image de base précise, une chaîne d'outils inhabituelle ou un contrôle total sur le build.

Pourquoi mon conteneur n'est-il jamais prêt ?

Nodion attend un 2xx ou un 3xx sur le chemin du health check, sur le port du processus web. Vérifiez que le serveur écoute sur 0.0.0.0, et non sur 127.0.0.1, exactement sur ce port, et que le chemin ne demande pas de connexion. Au bout de 10 minutes, la release est annulée et l'ancienne version continue de répondre.

Puis-je déployer une image depuis Docker Hub ou GHCR ?

Oui. Choisissez une image préconstruite plutôt qu'un dépôt Git. Les images publiques fonctionnent directement ; pour un registre privé, enregistrez d'abord ses identifiants.

Nodion exécute-t-il mon docker-compose.yml ?

Pas sous la forme de docker compose up. Un import expérimental lit le fichier une seule fois, à la création de l'app, et le transforme en une app avec des bases de données managées ; voir Docker Compose sur Nodion.

Où tourne mon app Docker ?

Dans la région EU Central, à Francfort (Allemagne). Le build, le registry, l'app et ses bases de données, volumes, buckets, logs et métriques restent dans cette région. L'API et le plan de contrôle de Nodion sont hébergés en Allemagne. Nodion GmbH a son siège à Stuttgart.

Puis-je utiliser Docker en conformité avec le RGPD ?

Nodion en pose les bases : Nodion GmbH a son siège à Stuttgart (Allemagne). Dans la région de Francfort, l'app, ses bases de données et ses volumes fonctionnent en Allemagne. Vous concluez le DPA (accord de traitement des données, art. 28 RGPD) par voie électronique dans le dashboard. La conformité de votre déploiement dépend aussi de la façon dont vous configurez et utilisez l'app.

Combien coûte l'hébergement Docker sur Nodion ?

Une instance d'app coûte à partir de 1 EUR par mois. La configuration présentée dans l'encadré des coûts revient à 2 EUR par mois : App 2 EUR. Les prix sont HT, avec une facturation à la seconde. Vous pouvez choisir des tailles plus grandes ou davantage d'instances dès que vous en avez besoin.

Puis-je utiliser mon propre domaine pour mon app Docker ?

Oui. Chaque app reçoit un nom d'hôte par défaut avec HTTPS. Ajoutez votre propre domaine dans l'onglet Domains de l'app. Le certificat TLS est émis et renouvelé automatiquement.

Offrez un cloud à votre agent.

Jusqu'à 15 € de crédit de bienvenue à l'inscription.

Continuer avec GitHub

ou par e-mail

Restez informé.

Les nouveautés du produit, sans spam. Désabonnez-vous à tout moment.