Mina: Kein Cache für Bundler

Erstellt am 24. Sept. 2016  ·  3Kommentare  ·  Quelle: mina-deploy/mina

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?

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

Alle 3 Kommentare

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)
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen