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 Python cloud, które upraszcza proces wdrażania:

  • Wdrażaj swoją aplikację na produkcję w kilka sekund za pomocą prostego git push.
  • Korzystaj z własnej nazwy domeny, z automatyczną konfiguracją certyfikatu HTTPS – bezpieczne połączenia są obsługiwane za Ciebie.
  • Polegaj na automatycznych backupach, aktualizacjach jednym kliknięciem oraz przewidywalnych kosztach, dzięki czemu możesz skupić się na kodzie, a nie na zarządzaniu infrastrukturą.
  • Korzystaj z wysokiej wydajności i bezpieczeństwa na prywatnej, dedykowanej infrastrukturze. Twoje środowisko jest odizolowane i chronione.

Oszczędzaj czas i upraszczaj swój workflow: Twój kod może działać na Python cloud hosting Stackhero już w 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.