Python: Tworzenie Makefile do wdrożenia na Stackhero

Ta dokumentacja jest częścią przewodnika Wdrażanie do produkcji. Pełny przewodnik znajdziesz tutaj: Jak wdrożyć swój kod Python do produkcji w kilka minut.

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie Python cloud, które zapewnia wiele korzyści, w tym:

  • Wdrażaj swoją aplikację w kilka sekund za pomocą prostego git push.
  • Używaj własnej nazwy domeny i korzystaj z automatycznej konfiguracji certyfikatów HTTPS dla zwiększonego bezpieczeństwa.
  • Ciesz się spokojem dzięki automatycznym kopiom zapasowym, aktualizacjom jednym kliknięciem oraz prostemu, przejrzystemu i przewidywalnemu cennikowi.
  • Uzyskaj optymalną wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.

Oszczędzaj czas i upraszczaj sobie życie: wypróbowanie rozwiązania Python cloud hosting Stackhero zajmuje tylko 5 minut!

Aby poinformować Stackhero, jak uruchomić Twoją aplikację, użyjesz pliku Makefile w katalogu głównym projektu.

Jeśli nie miałeś jeszcze do czynienia z plikami Makefile i poleceniem make, nie martw się. Po prostu postępuj zgodnie z poniższymi instrukcjami.

Utwórz plik Makefile w katalogu głównym projektu z następującą zawartością:

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

Kilka ważnych kwestii dotyczących tego Makefile:

  1. Reguła run jest wymagana, ponieważ Stackhero uruchamia ją automatycznie. Prosimy jej nie zmieniać.
  2. Polecenie gunicorn app:app -b 0.0.0.0:8080 --error-logfile - to tylko przykład. Dostosuj je do wymagań swojej aplikacji.
  3. Upewnij się, że polecenie gunicorn zaczyna się od znaku tabulacji. Jeśli pojawi się błąd typu "*** missing separator", oznacza to brak tabulacji.

W tym przykładzie Gunicorn służy do uruchomienia Twojej aplikacji (upewnij się, że znajduje się w pliku requirements.txt). Argument -b 0.0.0.0:8080 oznacza nasłuchiwanie na wszystkich interfejsach na porcie 8080. Jeśli wybierzesz inny port, pamiętaj o aktualizacji konfiguracji usługi Python w panelu Stackhero. Fragment app:app odnosi się do obiektu app w pliku app.py.