Point de terminaison
GET /health. Répond avec un statut, le nom du produit et la version en cours. Un déploiement peut être confirmé, pas supposé.
Configuration requise
Ce dont le conteneur a besoin avant que quiconque le déploie : le runtime qu’il embarque, le seul port qu’il publie, le volume qu’il doit conserver, et l’hôte que nous vous recommandons de lui donner.
Deux runtimes de langage dans un seul conteneur, et le second a une raison précise, pas une préférence.
| Ce que c’est | Pourquoi, et où le vérifier | |
|---|---|---|
| Image de base | python:3.13-slim | La même base dans les deux étapes de build. Ce qui est compilé est ce qui s’exécute. Dockerfile:13 |
| Python | 3.13 ou plus récent | Testé sur 3.13 en intégration continue. pyproject.toml:9, .github/workflows/tests.yml:91 |
| .NET | Runtime 8.0 | Le runtime seulement, pas le SDK. Migrate enveloppe le .NET Migration SDK de Tableau. Le runtime voyage avec lui dans l’image. Dockerfile:101 |
| S’exécute en tant que | uid 10001, utilisateur ttc | Root est utilisé une fois, pour prendre possession d’un volume monté, et abandonné avant le démarrage de l’application. Dockerfile:188 |
| Architecture du processeur | amd64 | Un build arm64 se charge proprement sur un hôte x86 puis ne démarre pas. L’architecture mérite d’être vérifiée avant un déploiement, pas après. |
Les applications gouvernées répondent en loopback à l’intérieur du conteneur. La passerelle les atteint, et rien d’autre.
Les 14 applications gouvernées se lient à l’interface locale à l’intérieur du conteneur et ne sont jamais publiées. Un seul port fait entrer chaque requête, et la passerelle achemine chacune vers l’application qui la possède, en tenant une seule session Tableau pour vous.
C’est une propriété que vous pouvez vérifier plutôt qu’une promesse à accepter. Listez les ports publiés du conteneur en cours d’exécution et vous en trouverez un, quel que soit l’effectif qu’il contient dans cette version.
Le conteneur sert du trafic en clair et ne détient jamais de certificat. La sécurité du transport reste là où vous l’exploitez déjà.
| Ce que c’est | Pourquoi, et où le vérifier | |
|---|---|---|
| Port publié | 8865 par défaut | Défini par la variable d’environnement PORT. Un déploiement derrière un proxy le mappe généralement plutôt que de le changer. Dockerfile:236 |
| Ports des applications | 8851 à 8869, sur la boucle locale | Chaque application gouvernée se lie à 127.0.0.1 dans le conteneur et n’est jamais publiée. La passerelle les atteint et le réseau non. |
| Règles entrantes | 80 et 443 vers le monde, accès administratif depuis vos propres adresses | Le port de l’application lui-même reste non publié. |
| Sécurité du transport | Terminée en amont du conteneur | Le conteneur sert toujours du HTTP simple et ne détient jamais de certificat. Votre répartiteur de charge ou votre reverse proxy possède la sécurité du transport, là où elle se trouve déjà pour tout ce que vous exécutez. |
| En-têtes transmis | Approuvés seulement quand vous le dites | La confiance dans les en-têtes est désactivée par défaut. Un conteneur directement joignable ignore une adresse transmise. |
Un seul volume contient tout ce qu’une reconstruction ne doit pas perdre. Cette page nomme ce qu’il contient, parce qu’une consigne de sauvegarder un chemin ne vous dit pas ce que vous perdriez.
| Ce que c’est | Valeur | Pourquoi, et où le vérifier |
|---|---|---|
| Volume de données | /app/data | L’annuaire des utilisateurs, le registre des changements, le journal d’audit administratif, les profils de la couche sémantique et les enregistrements de connexion chiffrés. Dockerfile:215 |
| Volume des artefacts | /app/artifacts | Là où Offboard écrit les livrables qu’un audit demande. |
| Taille du volume | Dans la recommandation de 500 Go | Les magasins sont des fichiers JSON et JSON Lines, pas une base de données, et les journaux d’observabilité tournent à 5 Mo en gardant cinq fichiers. |
| Propriété | Corrigée à chaque démarrage | Le point d’entrée prend possession du volume avant d’abandonner ses privilèges. Un volume créé par une version antérieure reste lisible et n’est jamais vidé en silence. |
| Fichiers proches des secrets | Écrits en 0600, atomiquement | Une écriture partielle laisse le fichier précédent intact, pas un fichier tronqué. |
Un seul conteneur sur un hôte Docker, avec de la marge pour travailler. Ce sont les chiffres sur lesquels Boreon vous recommande de provisionner.
| Ce que c’est | Valeur | Ce qui pèse dessus |
|---|---|---|
| Hôte | Un hôte Docker | Un seul conteneur autonome sur n’importe quel hôte Docker que vous exécutez déjà. Aucun orchestrateur n’est requis. |
| Mémoire | 8 Go de RAM | Deux runtimes de langage et un navigateur sans interface partagent un seul conteneur. |
| Disque disponible | 500 Go | Couvre l’image, les volumes persistants et de la place pour les artefacts qu’un audit demande. |
Demandez au conteneur et il répond avec la version qu’il exécute, ce qui est une meilleure source pour ce numéro que n’importe quelle page, celle-ci comprise.
GET /health. Répond avec un statut, le nom du produit et la version en cours. Un déploiement peut être confirmé, pas supposé.
Toutes les 30 secondes
4 secondes
60 secondes. La passerelle attend que chaque application gouvernée réponde avant de se déclarer prête. Un démarrage à froid est plus lent qu’un redémarrage.
5