Endpoint
GET /health. Risponde con uno stato, il nome del prodotto e la versione in esecuzione. Un deployment può essere confermato, non supposto.
Requisiti di sistema
Di cosa ha bisogno il container prima che qualcuno lo distribuisca: il runtime al suo interno, l’unica porta che pubblica, il volume che deve conservare, e l’host che ti consigliamo di dargli.
Due runtime di linguaggio in un solo container, e il secondo ha una ragione precisa, non una preferenza.
| Che cos’è | Perché, e dove verificarlo | |
|---|---|---|
| Immagine di base | python:3.13-slim | La stessa base in entrambe le fasi di build. Ciò che viene compilato è ciò che gira. Dockerfile:13 |
| Python | 3.13 o successivo | Testato su 3.13 in integrazione continua. pyproject.toml:9, .github/workflows/tests.yml:91 |
| .NET | Runtime 8.0 | Solo il runtime, non l’SDK. Migrate avvolge il .NET Migration SDK di Tableau. Il runtime viaggia con esso dentro l’immagine. Dockerfile:101 |
| Gira come | uid 10001, utente ttc | Root viene usato una volta, per prendere possesso di un volume montato, e abbandonato prima che l’applicazione parta. Dockerfile:188 |
| Architettura del processore | amd64 | Una build arm64 si carica senza errori su un host x86 e poi non parte. L’architettura va verificata prima di un deployment, non dopo. |
Le applicazioni governate rispondono in loopback dentro il container. Il gateway le raggiunge, e nient’altro.
Tutte le 14 applicazioni governate si legano all’interfaccia locale dentro il container e non vengono mai pubblicate. Una sola porta fa entrare ogni richiesta, e il gateway instrada ciascuna all’applicazione che la possiede, tenendo una sola sessione Tableau per te.
È una proprietà che puoi verificare, non una promessa da accettare. Elenca le porte pubblicate del container in esecuzione e ne troverai una, qualunque sia l’elenco di strumenti che contiene in quella versione.
Il container serve traffico in chiaro e non detiene mai un certificato. La sicurezza del trasporto resta dove già la gestisci.
| Che cos’è | Perché, e dove verificarlo | |
|---|---|---|
| Porta pubblicata | 8865 per impostazione predefinita | Impostata dalla variabile d’ambiente PORT. Un deployment dietro un proxy di solito la mappa invece di cambiarla. Dockerfile:236 |
| Porte delle applicazioni | da 8851 a 8869, su loopback | Ogni applicazione governata si lega a 127.0.0.1 dentro il container e non viene mai pubblicata. Il gateway le raggiunge e la rete no. |
| Regole in ingresso | 80 e 443 verso il mondo, accesso amministrativo dai tuoi indirizzi | La porta dell’applicazione stessa resta non pubblicata. |
| Sicurezza del trasporto | Terminata prima del container | Il container serve sempre HTTP semplice e non detiene mai un certificato. Il tuo bilanciatore di carico o reverse proxy possiede la sicurezza del trasporto, che è dove sta già per tutto il resto che gestisci. |
| Header inoltrati | Considerati attendibili solo quando lo dici tu | La fiducia negli header è disattivata per impostazione predefinita. Un container raggiungibile direttamente ignora un indirizzo inoltrato. |
Un solo volume contiene tutto ciò che una ricostruzione non deve perdere. Questa pagina dice cosa c’è dentro, perché l’istruzione di fare il backup di un percorso non ti dice cosa perderesti.
| Che cos’è | Valore | Perché, e dove verificarlo |
|---|---|---|
| Volume dei dati | /app/data | La directory degli utenti, il registro delle modifiche, il log di audit amministrativo, i profili del livello semantico e i record di connessione cifrati. Dockerfile:215 |
| Volume degli artefatti | /app/artifacts | Dove Offboard scrive i deliverable che un audit richiede. |
| Dimensione del volume | Entro la raccomandazione di 500 GB | Gli archivi sono file JSON e JSON Lines, non un database, e i log di osservabilità ruotano a 5 MB mantenendo cinque file. |
| Proprietà | Corretta a ogni avvio | L’entry point prende possesso del volume prima di abbandonare i privilegi. Un volume creato da una versione precedente resta leggibile e non viene mai svuotato in silenzio. |
| File vicini ai segreti | Scritti 0600, atomicamente | Una scrittura parziale lascia intatto il file precedente, non uno troncato. |
Un solo container su un host Docker, con spazio per lavorare. Sono le cifre su cui Boreon ti consiglia di dimensionare.
| Che cos’è | Valore | Cosa incide |
|---|---|---|
| Host | Un host Docker | Un singolo container autonomo su qualsiasi host Docker che già gestisci. Nessun orchestratore è richiesto. |
| Memoria | 8 GB di RAM | Due runtime di linguaggio e un browser headless condividono un solo container. |
| Disco disponibile | 500 GB | Copre l’immagine, i volumi persistenti e lo spazio per gli artefatti che un audit richiede. |
Chiedi al container e risponde con la versione che sta eseguendo, che è una fonte migliore per quel numero di qualsiasi pagina, questa compresa.
GET /health. Risponde con uno stato, il nome del prodotto e la versione in esecuzione. Un deployment può essere confermato, non supposto.
Ogni 30 secondi
4 secondi
60 secondi. Il gateway aspetta che ogni applicazione governata risponda prima di dichiararsi pronto. Un avvio a freddo è più lento di un riavvio.
5