Aller au contenu principal

sng run

Bêta

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.

ArgumentDescription
DOSSIERdossier de build (défaut .), qui contient le Dockerfile
FlagTypeDéfautDescription
-p, --portentier(requis)port sur lequel le conteneur écoute ; l'application est exposée en HTTPS sur ce port
--purgeboolfalseà l'arrêt, supprime aussi le dépôt d'images (voir ci-dessous)
-f, --filestringDOSSIER/Dockerfilechemin du Dockerfile
--namestringnom du dossiernom de l'application ; le dépôt devient tmp-<nom>
--envK=V, répétablevariable d'environnement du conteneur
--sizestringtaille de l'application, comme sng app create
--userentierUID d'exécution du conteneur, comme sng app create
--egress-internetboolfalseautorise le conteneur à sortir vers Internet, comme sng app create

Ce que fait la commande​

  1. Construit l'image avec docker buildx et la pousse dans le dépôt tmp-<dossier> de votre registre, avec le tag run-<AAAAMMJJ-HHMMSS> (UTC). Le dépôt est créé s'il n'existe pas.
  2. Crée l'application, nommée d'après le dossier, exposée en HTTPS sur le port indiqué.
  3. 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, SIGTERM ou la fermeture du terminal suppriment l'application. L'image est conservée ; la commande pour la supprimer est affichée.
  • --purge supprime aussi le dépôt tmp-<dossier> quand sng run l'a créé (politique de suppression Delete) et qu'il ne contient que des images run-*. 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 run n'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 run reconnaît ses applications à leur forme : un seul service, nommé comme l'application, dont l'image est tmp-<nom>:run-* de votre registre.
  • Si le processus est tué brutalement (SIGKILL, coupure réseau), l'application reste : le sng run suivant la remplace, ou supprimez-la avec sng 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 detect en génère un.

Erreurs typiques​

MessageCause
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 --namenom 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)

Voir aussi​