部署 部署失败-- bundle: command not found

dccmmtop · 2017年11月14日 · 最后由 pynix 回复于 2017年11月16日 · 3129 次阅读

下面是我的 deploy.rb

require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
require 'mina/rvm'
require 'mina/puma'
require 'mina/logs'
set :domain, '********'
set :user, '****'
set :deploy_to, '/home/deploy/dc_forum/'
set :repository, 'https://github.com/dccmmtop/dc_forum.git'   
set :branch, 'master'
set :forward_agent, true
set :shared_dirs, ['log']
set :shared_files, ['config/database.yml', 'config/secrets.yml']
set :rvm_use_path, '/usr/local/rvm/scripts/rvm'
desc 'Set up environment.'
task :remote_environment do
  invoke :'rvm:use', 'ruby-2.3.3@rails5'
end
desc 'Prepare for deployment.'
task :setup do
  task :setup do
    ['log', 'config', 'public/upload', 'tmp/pids', 'tmp/sockets'].each do |dir|
      command %{mkdir -p "fetch(:deploy_to)/shared/#{dir}"}
      command %{chmod g+rx,u+rwx "fetch(:deploy_to)/shared/#{dir}"}
    end

    ['config/database.yml', 'config/secrets.yml', 'config/puma.rb'].each do |file|
      command %{touch "fetch(:deploy_to)/shared/#{file}"}
      comment %{Be sure to edit 'shared/#{file}'.}
    end
  end
end
desc 'Deploy current version to the server.'
task :deploy do
  deploy do
    invoke :'git:clone'
    invoke :'deploy:link_shared_paths'
    invoke :'bundle:install'
    invoke :'rails:db_migrate'
    invoke :'rails:assets_precompile'
    invoke :'deploy:cleanup'

    on :launch do
      invoke :'puma:start'
      invoke :'puma:phased_restart'
    end
  end
end

执行mina deploy有如下报错信息

大家帮忙看一下怎么解决

两个建议让部署更轻松:

  1. 用源里的 ruby,避免处理 path 问题,ubuntu 16.04 源里的 ruby 已经是 2.3。
  2. 用 cap 而不是 mina,mina 不支持多机部署和角色区分,扩展有问题。

试一下

task deploy: :remote_environment do
#
end

mina 1.0 之后有个 bug,作者修改了底层代码,导致一些依赖的初始化没有执行,比如 rvm。解决方案如 @zhandao 所示,但是早一点的版本应该是 task deploy: :environment:remote_environment 应该是最新版本的命名。

感觉 mina 就是跑起来快一点,但是特性少,不好扩展,另外也都一直有小毛病。

zhandao 回复

恩恩,谢谢,我试试

Rei 回复

好的,谢谢

是不是用 rvm 装完 ruby 没有装 bundler gem install bundler

Rei 回复

学到了

我现在也切换回了 cap,感觉 mina 快一点,cap 稳 (问题少) 一点

git push 部署多好啊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号