Deploy a un servlet remoto manteniendo el mismo gemset

32 views
Skip to first unread message

Carlos Ramseyer

unread,
Mar 22, 2017, 6:08:47 PM3/22/17
to rubysur
Buenas grupo!
Tengo un problema y ojalá alguien me pueda dar una mano.

En mi compu tengo el ambiente development de una aplicación, desarrollada en un gemset de rvm llamado "2.2.1@rails4252", como el nombre lo indica, usando Ruby 2.2.1 y Rails 4.2.5.2. En este gemset, por ejemplo, uso la gema unicorn 5.2.0

Para el deploy de producción en un servlet de Digital Ocean uso Capistrano, pero cuando intento correr el sitio en el droplet remoto, el log del unicorn me dice 

"You have already activated unicorn 5.1.0, but your Gemfile requires unicorn 5.2.0. Prepending 'bundle exec' to your command may solve this. from /usr/local/rvm/gems/ruby-2.2.1@global/gems/bundler-1.8.4/lib/bundler/runtime.rb:19:in 'setup'"

En el droplet tengo creado el gemset "2.2.1@rails4252", pero el deploy al droplet me lo mete en el entorno del 2.2.1@global



En el droplet remoto

~$rvm use 2.2.1@rails4252
~$gem list
*** LOCAL GEMS ***

bigdecimal (1.2.6)
bundler (1.8.4)
bundler-unload (1.0.2)
executable-hooks (1.3.2)
gem-wrappers (1.2.7)
io-console (0.4.3)
json (1.8.1)
minitest (5.4.3)
power_assert (0.2.2)
psych (2.0.8)
rake (10.4.2)
rdoc (4.2.0)
rubygems-bundler (1.4.4)
rvm (1.11.3.9)
test-unit (3.0.8)


~$rvm use 2.2.1
~$gem list
*** LOCAL GEMS ***

actionmailer (4.2.5.2)
actionpack (4.2.5.2)
actionview (4.2.5.2)
activejob (4.2.5.2)
activemodel (4.2.5.2)
activerecord (4.2.5.2)
activesupport (4.2.5.2)
addressable (2.4.0)
arel (6.0.3)
bigdecimal (1.2.6)
binding_of_caller (0.7.2)
builder (3.2.2)
bundler (1.8.4)
bundler-unload (1.0.2)
byebug (8.2.2)
coffee-rails (4.1.1)
coffee-script (2.4.1)
coffee-script-source (1.10.0)
colorator (1.1.0)
concurrent-ruby (1.0.1)
debug_inspector (0.0.2)
erubis (2.7.0)
execjs (2.6.0)
executable-hooks (1.3.2)
ffi (1.9.14)
forwardable-extended (2.6.0)
gem-wrappers (1.2.7)
globalid (0.3.6)
i18n (0.7.0)
io-console (0.4.3)
jbuilder (2.4.1)
jekyll (3.3.0)
jekyll-feed (0.8.0)
jekyll-sass-converter (1.4.0)
jekyll-watch (1.5.0)
jquery-rails (4.1.0)
json (1.8.3, 1.8.1)
kgio (2.11.0, 2.10.0)
kramdown (1.12.0)
liquid (3.0.6)
listen (3.0.8)
loofah (2.0.3)
mail (2.6.3)
mercenary (0.3.6)
mime-types (2.99.1)
mini_portile2 (2.0.0)
minima (2.0.0)
minitest (5.8.4, 5.4.3)
multi_json (1.11.2)
nokogiri (1.6.7.2)
pathutil (0.14.0)
pg (0.18.4)
power_assert (0.2.2)
psych (2.0.8)
rack (1.6.5, 1.5.5)
rack-test (0.6.3)
rails (4.2.5.2)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (1.0.7)
rails-html-sanitizer (1.0.3)
railties (4.2.5.2)
raindrops (0.17.0, 0.16.0)
rake (10.5.0, 10.4.2)
rb-fsevent (0.9.7)
rb-inotify (0.9.7)
rdoc (4.2.2, 4.2.0)
rouge (1.11.1)
rubygems-bundler (1.4.4)
rvm (1.11.3.9)
safe_yaml (1.0.4)
sass (3.4.22, 3.4.21)
sass-rails (5.0.4)
sdoc (0.4.1)
spring (1.6.4)
sprockets (3.5.2)
sprockets-rails (3.0.4)
test-unit (3.0.8)
thor (0.19.1)
thread_safe (0.3.5)
tilt (2.0.2)
turbolinks (2.5.3)
tzinfo (1.2.2)
uglifier (2.7.2)
unicorn (5.1.0, 5.0.1)
web-console (2.3.0)



En mi pc de development

~$ rvm use 2.2.1@rails4252
~$gem list
*** LOCAL GEMS ***

actionmailer (4.2.5.2)
actionpack (4.2.5.2)
actionview (4.2.5.2)
activejob (4.2.5.2)
activemodel (4.2.5.2)
activerecord (4.2.5.2)
activesupport (4.2.5.2)
airbrussh (1.1.2)
arel (6.0.4)
bigdecimal (1.2.6)
binding_of_caller (0.7.2)
builder (3.2.3)
bundler (1.8.4)
bundler-unload (1.0.2)
byebug (9.0.6)
capistrano (3.5.0)
capistrano-bundler (1.1.4)
capistrano-harrow (0.5.3)
capistrano-rails (1.1.8)
capistrano3-unicorn (0.2.1)
coffee-rails (4.1.1)
coffee-script (2.4.1)
coffee-script-source (1.12.2)
concurrent-ruby (1.0.5)
debug_inspector (0.0.2)
dotenv (2.2.0)
dotenv-rails (2.2.0)
erubis (2.7.0)
execjs (2.7.0)
executable-hooks (1.3.2)
gem-wrappers (1.2.7)
globalid (0.3.7)
i18n (0.8.1)
io-console (0.4.3)
jbuilder (2.6.3)
jquery-rails (4.2.2)
json (1.8.6, 1.8.1)
kgio (2.11.0)
loofah (2.0.3)
mail (2.6.4)
mime-types (3.1)
mime-types-data (3.2016.0521)
mini_portile2 (2.1.0)
minitest (5.10.1, 5.4.3)
multi_json (1.12.1)
net-scp (1.2.1)
net-ssh (4.1.0)
nokogiri (1.7.1)
power_assert (0.2.2)
psych (2.0.8)
rack (1.6.5)
rack-test (0.6.3)
rails (4.2.5.2)
rails-deprecated_sanitizer (1.0.3)
rails-dom-testing (1.0.8)
rails-html-sanitizer (1.0.3)
railties (4.2.5.2)
raindrops (0.17.0)
rake (12.0.0, 10.4.2)
rdoc (4.3.0, 4.2.0)
rubygems-bundler (1.4.4)
rvm (1.11.3.9)
rvm-capistrano (1.5.0)
sass (3.4.23)
sass-rails (5.0.6)
sdoc (0.4.2)
spring (2.0.1)
sprockets (3.7.1)
sprockets-rails (3.2.0)
sqlite3 (1.3.13)
sshkit (1.12.0)
test-unit (3.0.8)
thor (0.19.4)
thread_safe (0.3.6)
tilt (2.0.7)
turbolinks (5.0.1)
turbolinks-source (5.0.0)
tzinfo (1.2.2)
uglifier (3.1.9)
unicorn (5.2.0)
web-console (2.3.0)



¿Hay alguna manera de que cuando hago el deploy al droplet remoto, en el mismo se genere un gemset identico al que uso en la pc development, o que use el mismo que el que yo indico? Para evitar los conflictos de versiones diferentes de gemas


En el Capfile agregué las siguientes líneas pero pasa lo mismo
set :rvm_type, :user
set :rvm_ruby_version, '2.2.1@rails4252'


Gracias!

Hernan Fernandez

unread,
Mar 22, 2017, 6:20:57 PM3/22/17
to rub...@googlegroups.com
Hola
en el archivo Capfile tenes require 'capistrano/rvm' ?
el usuario que usa capistrano para conectarse ve el gemset?

Hernan


--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Carlos Ramseyer

unread,
Mar 27, 2017, 1:39:18 PM3/27/17
to rubysur
Tengo capistrano/rvm

Ahora no tengo acceso para ver el droplet, pero sí te digo que el rvm en mi máquina development está instalado en /home/yo/.rvm mientras que el rvm del droplet remoto está en /usr/local/rvm. ¿Tiene algo que ver que los tipos de instalaciones del rvm sean diferentes?
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.

Hernan Fernandez

unread,
Mar 27, 2017, 7:06:02 PM3/27/17
to rub...@googlegroups.com
No importa que sean diferente tu ambiente y el del server, lo que pregunto es si el usuario con que se loguea capistrano para hacer el deploy ve el gemset

Hernan

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.

Carlos Ramseyer

unread,
Apr 5, 2017, 3:02:47 PM4/5/17
to rubysur
Lo terminé solucionando a la fuerza. Contraté otro server remoto con ubuntu pelado y le instale el rvm por usuario. Cuando quise hacer deploy no hubo ningún problema. Gracias!
Reply all
Reply to author
Forward
0 new messages