Runtime a interní port
Dynamická aplikace musí spustit jeden foreground proces, který naslouchá na 0.0.0.0 a na portu odpovídajícím runtimePort v Noyra Cloud.
Povinný kontrakt
- produkční start je neinteraktivní;
- listener není omezený na
localhost; - aplikace respektuje
PORT, pokud to framework podporuje, s rozumnou výchozí hodnotou; - logy míří na stdout/stderr a neobsahují tajné údaje;
- stav v paměti může být při restartu ztracen;
- trvalá data používají databázi nebo připojené úložiště;
- framework při ukončení korektně zpracuje signál, pokud tuto možnost má.
Příklad Node serveru:
const port = Number(process.env.PORT ?? 3000);
server.listen(port, '0.0.0.0', () => {
console.log(`Server naslouchá na portu ${port}`);
});
runtimePort je interní port kontejneru, nikoli veřejný host port. Veřejné směrování a HTTPS zajišťuje Noyra Cloud.
Startovací chyba po úspěšném buildu
Úspěšný build nedokazuje, že aplikace běží. Při startup chybě ověřte start příkaz, host binding, port, runtime proměnné, migrace a předpoklady o zapisovatelném filesystemu.