getting 无法修改 frozen #<Class:#<Rake::Task:0x007f88ab1af578>> while 运行 cap dev shell
Getting can't modify frozen #<Class:#<Rake::Task:0x007f88ab1af578>> While running cap dev shell
我正在尝试为一个新项目设置 Capistrano 并在 运行 cap dev shell 时收到以下错误。我在 cap dev deploy:check 上也遇到了同样的错误。我只想将代码从 bitbucket 部署到一个具有我已经在 deploy.rb
中提到的特定角色的实例
deploy.rb
set :application, "fex"
set :repo_url, "git@bitbucket.org:faasos/fex.git"
set :ec2_access_key_id,"AAAAAAAAAAA"
set :ec2_secret_access_key,"AAAAAAAAAAAAAAAAAAAAAA"
set :ec2_project_tag, 'Projects'
set :ec2_roles_tag, 'Roles'
set :ec2_stages_tag, 'Stages'
set :default_shell, "/usr/bin/bash"
set :shell, "bash"
set :keep_releases, 20
namespace :deploy do
desc "run the frontend"
task :seed do
run "cd #{fetch(:deploy_to)}/current/code/fex/frontend; nohup puma RAILS_ENV=#{rails_env} &"
end
desc 'Restart application'
task :restart do
on roles(:fex), in: :sequence, wait: 5 do
within "#{fetch(:deploy_to)}/current/" do
# Your restart mechanism here
begin
#execute "fuser -k 3000/tcp"
rescue =>e
puts "[Error] e.to_s"
end
#execute "cd /home/ubuntu/code/fex/frontend && RAILS_ENV="development" nohup puma &"
end
end
end
after :publishing, :restart
after :restart, :clear_cache do
on roles(:foodex), in: :groups, limit: 3, wait: 10 do
# Here we can do anything such as:
# within release_path do
# execute :rake, 'cache:clear'
# end
end
end
end
dev.rb
require "cap-ec2/capistrano"
set :rails_env, :dev
set :branch, "master"
set :deploy_user, "ubuntu"
set :full_app_name, "fex"
set :deploy_to, "/home/#{fetch(:deploy_user)}/code/#{fetch(:full_app_name)}"
ec2_role :frontend,user: 'ubuntu'
ec2_role :samachar,user: 'ubuntu'
imohit:prod$ cap dev shell
WARNING: load:defaults has already been invoked and can no longer be modified.
Check that you haven't loaded a Capistrano plugin in deploy.rb by mistake.
Plugins must be loaded in the Capfile to initialize properly.
(Backtrace restricted to imported tasks)
cap aborted!
can't modify frozen #<Class:#<Rake::Task:0x007f88ab1af578>>
Tasks: TOP => dev
(See full trace by running task with --trace)
cap dev deploy:check
WARNING: load:defaults has already been invoked and can no longer be modified.
Check that you haven't loaded a Capistrano plugin in deploy.rb by mistake.
Plugins must be loaded in the Capfile to initialize properly.
(Backtrace restricted to imported tasks)
cap aborted!
can't modify frozen #<Class:#<Rake::Task:0x007f98992971b8>>
Tasks: TOP => dev
(See full trace by running task with --trace)
还有剩下的吗?
已通过调用 ~/Capfile 中的所需模块修复此问题:
require 'capistrano/bundler'
require "cap-ec2/capistrano"
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
Capistrano v3.10 的 Capfile 包括这些作为潜在的设置配置。
我正在尝试为一个新项目设置 Capistrano 并在 运行 cap dev shell 时收到以下错误。我在 cap dev deploy:check 上也遇到了同样的错误。我只想将代码从 bitbucket 部署到一个具有我已经在 deploy.rb
中提到的特定角色的实例deploy.rb
set :application, "fex"
set :repo_url, "git@bitbucket.org:faasos/fex.git"
set :ec2_access_key_id,"AAAAAAAAAAA"
set :ec2_secret_access_key,"AAAAAAAAAAAAAAAAAAAAAA"
set :ec2_project_tag, 'Projects'
set :ec2_roles_tag, 'Roles'
set :ec2_stages_tag, 'Stages'
set :default_shell, "/usr/bin/bash"
set :shell, "bash"
set :keep_releases, 20
namespace :deploy do
desc "run the frontend"
task :seed do
run "cd #{fetch(:deploy_to)}/current/code/fex/frontend; nohup puma RAILS_ENV=#{rails_env} &"
end
desc 'Restart application'
task :restart do
on roles(:fex), in: :sequence, wait: 5 do
within "#{fetch(:deploy_to)}/current/" do
# Your restart mechanism here
begin
#execute "fuser -k 3000/tcp"
rescue =>e
puts "[Error] e.to_s"
end
#execute "cd /home/ubuntu/code/fex/frontend && RAILS_ENV="development" nohup puma &"
end
end
end
after :publishing, :restart
after :restart, :clear_cache do
on roles(:foodex), in: :groups, limit: 3, wait: 10 do
# Here we can do anything such as:
# within release_path do
# execute :rake, 'cache:clear'
# end
end
end
end
dev.rb
require "cap-ec2/capistrano"
set :rails_env, :dev
set :branch, "master"
set :deploy_user, "ubuntu"
set :full_app_name, "fex"
set :deploy_to, "/home/#{fetch(:deploy_user)}/code/#{fetch(:full_app_name)}"
ec2_role :frontend,user: 'ubuntu'
ec2_role :samachar,user: 'ubuntu'
imohit:prod$ cap dev shell
WARNING: load:defaults has already been invoked and can no longer be modified.
Check that you haven't loaded a Capistrano plugin in deploy.rb by mistake.
Plugins must be loaded in the Capfile to initialize properly.
(Backtrace restricted to imported tasks)
cap aborted!
can't modify frozen #<Class:#<Rake::Task:0x007f88ab1af578>>
Tasks: TOP => dev
(See full trace by running task with --trace)
cap dev deploy:check
WARNING: load:defaults has already been invoked and can no longer be modified.
Check that you haven't loaded a Capistrano plugin in deploy.rb by mistake.
Plugins must be loaded in the Capfile to initialize properly.
(Backtrace restricted to imported tasks)
cap aborted!
can't modify frozen #<Class:#<Rake::Task:0x007f98992971b8>>
Tasks: TOP => dev
(See full trace by running task with --trace)
还有剩下的吗?
已通过调用 ~/Capfile 中的所需模块修复此问题:
require 'capistrano/bundler'
require "cap-ec2/capistrano"
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
Capistrano v3.10 的 Capfile 包括这些作为潜在的设置配置。