Ошибка развертывания raise "не знаю, как построить задачу" assets:precompile " (Capistrano)
кто-нибудь когда-нибудь получил эту ошибку после запуска :
cap production deploy
Я использую capistrano: Capistrano версия: 3.6.1 (версия рейка: 11.3.0)
вот лог :
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@54.169.99.36: rake exit status: 1
rake stdout: rake aborted!
Don't know how to build task 'assets:precompile' (see --tasks)
/home/deploy/microwave-api/shared/bundle/ruby/2.3.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
.
.
.
/home/deploy/.rvm/gems/ruby-2.3.0/gems/bundler-1.13.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/home/deploy/.rvm/gems/ruby-2.3.0/gems/bundler-1.13.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/home/deploy/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)
rake stderr: Nothing written
SSHKit::Command::Failed: rake exit status: 1
rake stdout: rake aborted!
Don't know how to build task 'assets:precompile' (see --tasks)enter code here
2 ответов
звучит так, как будто у вас, вероятно, нет звездочек (только приложение API?).
в вашем Capfile у вас, вероятно, есть что-то вроде:
require 'capistrano/rails'
эта строка на самом деле требуется файл который выглядит как:
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
таким образом, вы можете заменить прежнюю строку просто:
require 'capistrano/rails/migrations'
и предварительная компиляция активов больше не будет выполняться.
как уже упоминалось выше, это предполагает, что вы на самом деле не хотите использовать конвейер активов. Если это не так, проблема в том, что вы не включаете звездочки, и вам нужно изучить это. Я бы сгенерировал новое приложение rails и сравнил ваш Gemfile
и config/application.rb
.
если приложение rails является только API, не добавляйте require 'capistrano/rails/assets'
или require "capistrano/rails"
.
добавить следующее:
require 'capistrano/bundler'
require 'capistrano/rails/migrations'
в конце Ваш Capfile будет выглядеть примерно так:
require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
require "capistrano/rbenv"
set :rbenv_type, :user
set :rbenv_ruby, "2.5.1"
require 'capistrano/bundler'
require 'capistrano/rails/migrations'
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }