sng run
Fonctionnalité en cours de déploiement. L'interface décrite ici est celle de la prochaine livraison : elle peut encore évoluer, et n'est pas forcément activée sur votre tenant.
sng run est en cours de diffusion dans la CLI.
sng run [DOSSIER] -p PORT [--purge] [-f DOCKERFILE] [--name NOM] [--env K=V]...
[--size TAILLE] [--user UID] [--egress-internet]
Construit DOSSIER (défaut .), le lance en tant qu'application éphémère sur votre
tenant, accessible en HTTPS, et affiche en direct son état, son adresse et ses logs. Un
Ctrl-C arrête et supprime l'application : c'est le moyen le plus court de voir tourner un
projet, avant de le déclarer par manifeste.
Prérequis : sng sso login, une session de tenant (sng tenant use NAME), et docker (avec buildx) sur votre poste.
| Argument | Description |
|---|---|
DOSSIER | dossier de build (défaut .), qui contient le Dockerfile |
| Flag | Type | Défaut | Description |
|---|---|---|---|
-p, --port | entier | (requis) | port sur lequel le conteneur écoute ; l'application est exposée en HTTPS sur ce port |
--purge | bool | false | à l'arrêt, supprime aussi le dépôt d'images (voir ci-dessous) |
-f, --file | string | DOSSIER/Dockerfile | chemin du Dockerfile |
--name | string | nom du dossier | nom de l'application ; le dépôt devient tmp-<nom> |
--env | K=V, répétable | variable d'environnement du conteneur | |
--size | string | taille de l'application, comme sng app create | |
--user | entier | UID d'exécution du conteneur, comme sng app create | |
--egress-internet | bool | false | autorise le conteneur à sortir vers Internet, comme sng app create |
Ce que fait la commande
- Construit l'image avec
docker buildxet la pousse dans le dépôttmp-<dossier>de votre registre, avec le tagrun-<AAAAMMJJ-HHMMSS>(UTC). Le dépôt est créé s'il n'existe pas. - Crée l'application, nommée d'après le dossier, exposée en HTTPS sur le port indiqué.
- Suit en direct : l'état (en attente, déploiement, certificat en préparation, prête), l'adresse (affichée une seule fois, dès qu'elle existe), le journal d'événements et les logs du conteneur.
cd web && sng run -p 8080
sng run │ build et push de ovh-gra-0.registry.dev.stackngo.fr/acme/tmp-web:run-20261029-201500…
sng run │ App web déployée (port 8080) ; Ctrl-C pour l'arrêter et la supprimer
sng run │ état : prête
sng run │ URL : https://web-web.acme.dev.stackngo.fr
sng run │ • 20:15:12 Instance démarrée
10.0.0.1 - - [29/Oct/2026:20:15:20 +0000] "GET / HTTP/1.1" 200 615
^C
sng run │ arrêt demandé : nettoyage… (Ctrl-C à nouveau pour abandonner)
sng run │ App web supprimée
Les logs du conteneur sont écrits sur la sortie standard, tout le reste sur la sortie
d'erreur : sng run -p 8080 > logs.txt ne garde que les logs. Les logs reprennent seuls après
une coupure ; quelques lignes peuvent alors apparaître en double ou manquer.
Arrêter
- Ctrl-C,
SIGTERMou la fermeture du terminal suppriment l'application. L'image est conservée ; la commande pour la supprimer est affichée. --purgesupprime aussi le dépôttmp-<dossier>quandsng runl'a créé (politique de suppressionDelete) et qu'il ne contient que des imagesrun-*. Sinon (dépôt que vous aviez déclaré vous-même, ou qui contient d'autres tags), seule l'image de la session est supprimée, et jamais si un autre tag la désigne.- Un second Ctrl-C abandonne le nettoyage et affiche les commandes qui restent à lancer
(code de sortie
1).
Limites
- Une application du même nom qui n'a pas été créée par
sng runn'est jamais remplacée :une App <nom> existe et n'a pas été créée par sng run : choisissez --name. Choisissez un autre nom avec--name.sng runreconnaît ses applications à leur forme : un seul service, nommé comme l'application, dont l'image esttmp-<nom>:run-*de votre registre. - Si le processus est tué brutalement (
SIGKILL, coupure réseau), l'application reste : lesng runsuivant la remplace, ou supprimez-la avecsng app delete NOM --yes. - Pas d'analyse de vulnérabilités (utilisez
sng registry build) et pas de sortie--json. - Pour une application durable, déclarez-la par manifeste :
sng detecten génère un.
Erreurs typiques
| Message | Cause |
|---|---|
required flag(s) "port" not set | -p manquant |
docker is required … | docker absent du PATH |
une App … existe et n'a pas été créée par sng run : choisissez --name | nom déjà pris par une autre application |
forbidden (no policy of this tenant allows it: see sng tenant policy list) | il manque un droit sur le registre (registry:push) ou sur les applications (deploy:write) |