Ruby: Tworzenie Makefile do wdrożenia na Stackhero

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

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie Ruby 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 Ruby cloud hosting Stackhero zajmuje tylko 5 minut!

Aby Stackhero wiedział, jak uruchomić Twoją aplikację, musisz utworzyć plik Makefile w głównym katalogu projektu. Ten plik definiuje polecenia, które Stackhero wykona podczas wdrożenia.

Jeśli nie miałeś wcześniej do czynienia z Makefile lub poleceniem make, nie martw się – poniższe kroki przeprowadzą Cię przez cały proces.

Utwórz plik Makefile o następującej treści:

run:
	rake assets:precompile
	rake db:migrate RAILS_ENV=production
	RAILS_ENV=production bundle exec puma -C config/puma.rb

Co dzieje się w tym Makefile:

  1. Reguła run jest wymagana – Stackhero automatycznie ją wykona podczas wdrożenia. Proszę zachować tę nazwę, ponieważ pełni rolę punktu wejścia.
  2. Polecenia korzystają z rake i bundle, ale możesz je dostosować do potrzeb swojej aplikacji.
  3. Upewnij się, że każda linia polecenia zaczyna się od znaku tabulacji, a nie od spacji. Jeśli pojawi się błąd typu *** missing separator, sprawdź formatowanie.

W powyższym przykładzie wdrożenie wykona:

  1. Prekompilację zasobów takich jak JavaScript i CSS do katalogu public/assets.
  2. Wykonanie niezbędnych migracji bazy danych.
  3. Uruchomienie serwera Puma, który obsłuży Twoją aplikację.