Rails 4 API-Bereitstellungsbeispiel für Amazon EC2 mit Capistrano 3, Nginx, Puma, GitHub und RVM?

8

Ich habe ein Rails 4-API-Projekt auf GitHub, und ich versuche, es von meinem MacBook Pro mit Capistrano 3 auf zwei Amazon AWS EC2 Ubuntu-Instanzen mit SSH-Schlüsseln zu verteilen - eines ist die App / Webserver, und der andere ist der PostgreSQL-Datenbankserver. Die App / der Web-Server verfügt über den neuesten Ruby 2 via RVM und bedient die API mit Nginx / Puma . Nginx wird mehrere Websites hosten, von denen eine diese API ist. Dies sind die relevanten Juwelen, die ich benutze:

  • Juwel 'Capistrano', '~ & gt; 3.0.0 '
  • Juwel 'capistrano-rails'
  • Edelstein 'capistrano-bundler'
  • Edelstein 'capistrano-rvm', '~ & gt; 0.0.2 '
  • Edelstein 'Capistrano-Puma', Github: "Seuros / Capistrano-Puma"

Bisher habe ich kein vollständiges Capistrano 3 Konfigurationsbeispiel gefunden, das Puma verwendet, aber genauso wichtig wie diese beiden Juwelen für die Rails-Community sind, bin ich sicher, dass es irgendwo auf GitHub ein funktionierendes Rails-Repository gibt, das diese enthält.

Ich habe die offizielle Dokumentation von Capistrano 3 bereits durchgesehen. Ich habe Probleme mit den Unterschieden zwischen Capistrano 2 und Capistrano 3 und würde gerne ein vollständiges Capistrano 3-Beispiel sehen , um die Unterschiede zu verstehen. Im Idealfall suche ich nach einem Open-Source-GitHub-Repository, das alle Konfigurationsdateien ( Capistrano 3 , Puma , Nginx ) enthält und funktioniert auf die ich verweisen kann.

Danke!

    
Chris 01.11.2013, 16:03
quelle

2 Antworten

2

Diese Frage ist ziemlich alt, aber ich habe genau das gleiche Setup: Capistrano 3, Puma und nginx also ich denke, es kann noch jemand helfen, zumal Puma jetzt der Standard für Rails 5 ist. Mein Projekt ist nicht Open Source, also ich Ich kann nicht auf ein öffentliches Github-Repository verweisen, aber hier ist meine vollständige Capistrano-Konfiguration für jeden, der es sich ansehen möchte. Es funktioniert seit Monaten einwandfrei.

Um Puma nach dem EC2-Neustart / der Erstellung neuer Instanzen ordnungsgemäß auf dem Produktionsserver zu starten, werfen Sie einen Blick auf meine Antwort hier:

Der Puma-Neustart schlägt beim Neustart fehl mit EC2 + Schienen + Nginx + Capistrano

# config / puma.rb

%Vor%

# config / deploy.rb

%Vor%

#Capfile

%Vor%

# config / deploy / production.rb

%Vor%

# lib / capistrano / Aufgaben

%Vor%

Nginx Server Konfiguration:

# etc / nginx / sites-enabled / default

%Vor%     
Augusto 24.07.2016, 04:27
quelle
3

Ich werde meine Antwort auf Wunsch ergänzen, aber da dies ziemlich einfach ist, mache ich Ihnen nur eine Liste. Mit Capistrano 3 und Puma 2.6 gibt es hier genug, um Sie in Schwung zu bringen:

  1. Fügen Sie puma zu Gemfile in production group hinzu.
  2. Erfordert 'capistrano/puma' von Capfile .
  3. Richten Sie gegebenenfalls Puma-Optionen in config/deploy.rb ein.
  4. Führen Sie cap puma:config aus, um die Puma-Konfigurationsdatei auf den Server zu kopieren.
  5. Führen Sie cap <stage> deploy .
  6. aus
  7. Setup nginx ist upstream zu dem Socket-Pfad, der in der Puma-Konfiguration des Servers angegeben ist.
  8. Starten Sie nginx neu.
blackxored 24.11.2013 20:18
quelle