Python: Creazione di un Makefile per il deployment su Stackhero

Questa documentazione fa parte della guida Distribuire in produzione. Consulta la guida completa qui: Come distribuire il tuo codice Python in produzione in pochi minuti.

👋 Benvenuto nella documentazione di Stackhero!

Stackhero offre una soluzione Python cloud pronta all'uso, progettata per semplificare il processo di deployment:

  • Distribuisci la tua applicazione in produzione in pochi secondi con un semplice git push.
  • Utilizza il tuo nome di dominio, con configurazione automatica del certificato HTTPS per connessioni sicure gestite direttamente da noi.
  • Affidati a backup automatici, aggiornamenti con un clic e prezzi prevedibili, così puoi concentrarti sul tuo codice invece che sulla gestione dell'infrastruttura.
  • Approfitta di elevate prestazioni e sicurezza su un'infrastruttura privata e dedicata. Il tuo ambiente è isolato e protetto.

Risparmia tempo e semplifica il tuo workflow: il tuo codice può essere operativo con il Python cloud hosting di Stackhero in soli 5 minuti.

Per indicare a Stackhero come eseguire la tua applicazione, utilizzerai un Makefile nella directory principale del tuo progetto.

Se non hai mai usato file Makefile e il comando make, nessun problema. Segui semplicemente queste istruzioni per iniziare.

Crea un file Makefile nella root del tuo progetto con il seguente contenuto:

run:
	gunicorn app:app -b 0.0.0.0:8080 --error-logfile -

Alcuni punti importanti su questo Makefile:

  1. La regola run è obbligatoria, perché Stackhero la esegue automaticamente. Non rinominarla.
  2. Il comando gunicorn app:app -b 0.0.0.0:8080 --error-logfile - è solo un esempio. Adattalo alle esigenze della tua applicazione.
  3. Assicurati di iniziare il comando gunicorn con un carattere di tabulazione. Se visualizzi un errore come "*** missing separator", significa che manca la tabulazione.

In questo esempio, Gunicorn viene utilizzato per servire la tua applicazione (assicurati che sia presente nel tuo requirements.txt). L'argomento -b 0.0.0.0:8080 indica che ascolta su tutte le interfacce sulla porta 8080. Se scegli una porta diversa, ricordati di aggiornare anche la configurazione del servizio Python nel dashboard Stackhero. La parte app:app si riferisce all'oggetto app all'interno del file app.py.