Estoy usando este script (se actualizó desde mina 0.3)
require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
require 'mina/rbenv'
set :shared_dirs, %w(log public/uploads node_modules)
set :current_path, 'current'
set :term_mode, nil
task :environment do
invoke :'rbenv:load'
end
task setup: :environment do
command %[mkdir -p "#{fetch(:shared_path)}/log"]
command %[chmod g+rx,u+rwx "#{fetch(:shared_path)}/log"]
command %[mkdir -p "#{fetch(:shared_path)}/public/uploads"]
command %[chmod g+rx,u+rwx "#{fetch(:shared_path)}/public/uploads"]
command %[mkdir -p "#{fetch(:shared_path)}/node_modules"]
command %[chmod g+rx,u+rwx "#{fetch(:shared_path)}/node_modules"]
end
desc 'Deploys the current version to the server.'
task deploy: :environment do
deploy do
invoke :'git:clone'
invoke :'deploy:link_shared_paths'
invoke :'bundle:install'
invoke :'rails:db_migrate'
invoke :'npm_install'
invoke :'rails:assets_precompile'
invoke :'deploy:cleanup'
on :launch do
command "mkdir -p #{fetch(:current_path)}/tmp/"
command "touch #{fetch(:current_path)}/tmp/restart.txt"
end
end
end
task :restart do
command "touch #{fetch(:current_path)}/tmp/restart.txt"
end
task :logs do
command 'echo "Contents of the log file are as follows:"'
command "tail -f #{fetch(:current_path)}/log/#{fetch(:rails_env)}.log"
end
task :npm_install do
command 'npm install --production'
end
El problema es que bundle install
está descargando todas las gemas desde cero cada vez que se realiza la implementación. Funcionaba bien en la versión 0.3.
¿Alguna idea de qué estoy haciendo mal?
Ok, descubrí cuál era el problema. En la versión 1, necesitamos agregar a shared_dirs en lugar de crear una tabla completa. Así que hice:
set :shared_dirs, fetch(:shared_dirs, []).push('log').push('public/uploads').push('node_modules')
y está funcionando ahora
¡Gracias! ¡Yo estaba teniendo el mismo problema!
No es mi intención agregar un hilo cerrado, pero también puede hacer algo como esto:
shared_dires = %w{log public/uploads node_modules}
set :shared_dirs, fetch(:shared_dirs, []).push(*shared_dirs)
Comentario más útil
Ok, descubrí cuál era el problema. En la versión 1, necesitamos agregar a shared_dirs en lugar de crear una tabla completa. Así que hice:
set :shared_dirs, fetch(:shared_dirs, []).push('log').push('public/uploads').push('node_modules')
y está funcionando ahora