mcloud-local

Par medusajs · medusa-agent-skills

Exécutez `mcloud local build` pour reproduire un build Cloud sur la machine locale. À utiliser lors du débogage d'un déploiement en échec sans pousser vers la branche suivie, pour itérer sur une correction de build, ou pour tester des changements de variables de build en local. Nécessite Docker et doit être exécuté dans le dépôt Git du projet.

npx skills add https://github.com/medusajs/medusa-agent-skills --skill mcloud-local

Cloud CLI : Commande Local

Exécutez mcloud local build pour lancer une build Cloud sur la machine locale, en reproduisant la manière dont Cloud construit le projet. Utilisez-la pour déboguer les déploiements build-failed sans pousser de changements ni attendre une build Cloud complète.

Contraintes

  • Pas de drapeau --json. local build diffuse la sortie de build en texte brut et signale le résultat par son code de sortie (0 = succès). Ne parsez pas sa sortie en JSON.
  • Nécessite Docker installé et en cours d'exécution, et doit être lancé depuis l'intérieur du repository Git du projet.
  • Reproduit uniquement les échecs build-failed (build) — pas les échecs deployment-failed (runtime). Pour les échecs runtime, utilisez mcloud logs --deployment <id>.
  • Disponible depuis mcloud CLI v0.1.10.
  • Le cache Docker build est désactivé par défaut pour que les changements de variables invalident toujours le cache ; passez --docker-cache pour l'activer.

Commande

local build

Lancez une build Cloud localement. Déduit le chemin racine et les variables de build du projet Cloud lié et de l'environnement. Construit le backend par défaut ; passez --type storefront pour le storefront.

mcloud local build \
  --organization <org-id> \
  --project <project-id-or-handle> \
  --environment <environment-handle>

Options :

  • -o/--organization <id> — ID de l'organisation (se rabat sur le contexte actif)
  • -p/--project <id-or-handle> — ID ou handle du projet (se rabat sur le contexte actif)
  • -e/--environment <handle> — Environnement dont les variables sont utilisées (se rabat sur le contexte actif)
  • -t/--type <backend|storefront> — Type de build (défaut : backend)
  • --root-path <path> — Chemin racine du backend relatif à la racine du repo (déduit s'il est omis ; . si aucun projet Cloud trouvé)
  • --storefront-path <path> — Chemin du storefront relatif à la racine du repo, pour --type storefront (déduit s'il est omis)
  • --env-file <path> — Utilisez un fichier .env local à la place des variables de l'environnement Cloud
  • -v/--var <KEY=VALUE> — Remplacez une seule variable de build ; répétable
  • --docker-cache — Activez le cache Docker build (défaut : false)

Sortie :

  • En cas de succès (sortie 0), l'image backend est taguée <repository-name>:cloud-local-build-<commit-hash> ; une build storefront écrit son répertoire de sortie et affiche le chemin.
  • En cas d'échec (sortie non-zéro), la commande se termine avec l'erreur de l'étape qui a échoué — déboguez-la comme vous le feriez pour une build Cloud.

Reproduire un Échec de Build

Vérifiez le même commit que celui de la build du déploiement échoué pour que la build locale corresponde, puis routez sur le code de sortie :

# Identifiez le déploiement échoué et le commit qu'il a construit
DEPLOYMENT_ID=$(
  mcloud deployments list --json \
    | jq -r '[.[] | select(.backend_status == "build-failed")][0].id'
)
COMMIT=$(mcloud deployments get "$DEPLOYMENT_ID" --json | jq -r '.commit_hash')

git checkout "$COMMIT"

if mcloud local build; then
  echo "Build succeeded locally; failure not reproducible from this commit."
else
  echo "Build failed locally; inspect the streamed output for the failing step."
fi

Une fois que la build locale sort 0, poussez la correction vers la branche suivie et démarrez une nouvelle build Cloud avec mcloud environments trigger-build <env>.

Exemples

# Reproduisez la build backend pour le contexte actif
mcloud local build

# Reproduisez la build storefront
mcloud local build --type storefront --storefront-path apps/storefront

# Testez un correctif de variable de build sans éditer le code
mcloud local build --var NODE_ENV=production

# Construisez contre un fichier .env local
mcloud local build --env-file .env

# Réutilisez le cache Docker pour une rebuild plus rapide
mcloud local build --docker-cache

Skills similaires