首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行cap dev shell时,dev无法修改冻结的#<Class:#<Rake::Task:0x007f88ab1af578>>

运行cap dev shell时,dev无法修改冻结的#<Class:#<Rake::Task:0x007f88ab1af578>>
EN

Stack Overflow用户
提问于 2017-07-12 21:46:33
回答 1查看 390关注 0票数 0

我正在尝试为一个新项目设置Capistrano,并在运行cap dev shell时出现以下错误。我在cap dev deploy上也得到了同样的错误:check。我只想将bitbucket中的代码部署到一个具有特定角色的实例上,这一点我已经在deploy.rb中提到过

deploy.rb

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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)

还剩下什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-12 22:32:51

已通过调用~/Capfile中的所需模块修复此问题:

代码语言:javascript
运行
复制
require 'capistrano/bundler'
require "cap-ec2/capistrano"
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'

Capistrano v3.10的Capfile包括这些可能的设置配置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45059502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档