2016-06-29 48 views
5

Così ho creato un'applicazione ruby ​​on rails che funziona come un calcolatore di base. Ora voglio impacchettare questa applicazione, caricare su github, scaricare su Jenkins e creare un lavoro Jenkins che eseguirà questa applicazione ruby.Qual è il modo migliore per impacchettare un'applicazione Ruby on Rails?

Normalmente se si trattava di un'applicazione Java, è necessario comprimerla come file jar e quindi eseguire il file jar. Come posso impacchettare questa applicazione Ruby?

Ho pensato di confezionare questa applicazione come una gemma di rubino, ma non sono le gemme di rubino principalmente per quando si desidera utilizzare l'app rubino all'interno di un'altra applicazione di rubino? Voglio eseguire questa app come applicazione indipendente.

Anche se dovessi impacchettare l'app Ruby on Rails come Ruby Gem, come potrei eseguire la gemma come gemma indipendente? Quale sarebbe il comando per eseguirlo come tale dalla riga di comando?

+0

probabilmente si dovrebbe guardare in esecuzione JRuby che è possibile eseguire sulla JVM. Altrimenti le app per binari non sono confezionate come app java, ma gestite da un server web come Unicorn o Passenger –

+0

Penso che potresti aver frainteso me. Non sto cercando di impacchettare la mia app ruby ​​come app Java. Ho semplicemente fatto il confronto con le app Java e i file Jar in modo che le persone capissero il tipo di file che sto cercando di impacchettare l'applicazione ruby ​​e chiedo se esiste un equivalente rubino di un file Jar. – user1842633

risposta

3

A differenza delle applicazioni Java che dispongono di un imballaggio come cittadino di prima classe (sia esso un vaso o una guerra), questo concetto non viene elaborato nella maggior parte degli ambienti di sviluppo.

Ecco perché c'è una grande spinta verso la finestra mobile, che ti permette di isolare la tua app (e le dipendenze della gemma) e collegarla nell'ambiente di produzione proprio come far cadere una guerra in un contenitore.

Ecco un articolo su dockerizing un'applicazione Rails: https://semaphoreci.com/community/tutorials/dockerizing-a-ruby-on-rails-application

+0

Grazie per l'articolo! Ho alcune domande però. Sto osservando l'articolo e li mostra usando un'applicazione Ruby on Rails. Hanno impacchettato l'applicazione rails come una gemma o hanno iniziato a usarlo immediatamente senza impacchettare il file. Inoltre, come utilizzerei questa applicazione dockerizzata insieme a Jenkins? Se ricordi che l'obiettivo finale era eseguire questa applicazione rubino da un lavoro di Jenkins. Come potrei eseguire un'applicazione dockerizzata in Jenkins? – user1842633

+0

In un ambiente di sviluppo è possibile utilizzare il server di incorporamento nel rails gem utilizzando 'rails server', ma in produzione è necessario creare un'immagine di finestra mobile che verrà eseguita dal contenitore finestra mobile. Il contenitore docker è un gestore di processi virtualizzati. Jenkins ha un plugin che fornisce supporto docker. https://wiki.jenkins-ci.org/display/JENKINS/Docker+build+step+plugin – Raphael