Ich verwende dieses Skript (es wurde von Mina 0.3 aktualisiert)
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
Das Problem ist - bundle install
lädt jedes Mal alle Gems von Grund auf, wenn die Bereitstellung abgeschlossen ist. Mit Version 0.3 hat es gut funktioniert.
Irgendeine Ahnung was ich falsch mache?
Ok, ich habe herausgefunden, was ein Problem war. In Version 1 müssen wir an shared_dirs anhängen, anstatt eine ganze Tabelle zu erstellen. Also habe ich gemacht:
set :shared_dirs, fetch(:shared_dirs, []).push('log').push('public/uploads').push('node_modules')
und es funktioniert jetzt
Vielen Dank! Ich hatte das gleiche Problem!
Ich möchte nicht an einen geschlossenen Thread anknüpfen, aber Sie können auch so etwas tun:
shared_dires = %w{log public/uploads node_modules}
set :shared_dirs, fetch(:shared_dirs, []).push(*shared_dirs)
Hilfreichster Kommentar
Ok, ich habe herausgefunden, was ein Problem war. In Version 1 müssen wir an shared_dirs anhängen, anstatt eine ganze Tabelle zu erstellen. Also habe ich gemacht:
set :shared_dirs, fetch(:shared_dirs, []).push('log').push('public/uploads').push('node_modules')
und es funktioniert jetzt