rails 4 mina部署失败

我正在部署使用mina部署的rails 4应用程序.我的部署脚本是

require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
require 'mina/rvm'    # for rvm support. (http://rvm.io)

set :domain,'someplace.com'
set :deploy_to,'/home/deploy/projects/website'
set :repository,'git@github.com:someone/repo.git'
set :branch,'master'

set :identity_file,"#{ENV['HOME']}/.ssh/id_rsa"
set :user,'deploy'    # Username in the server to SSH to.

set :shared_paths,['config/database.yml','config/credentials.yml','log','tmp']

task :environment do
  invoke :'rvm:use[ruby-2.1.0@default]'
end

task :setup => :environment do
  queue! %[mkdir -p "#{deploy_to}/shared/log"]
  queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/log"]

  queue! %[mkdir -p "#{deploy_to}/shared/config"]
  queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/config"]

  queue! %[touch "#{deploy_to}/shared/config/database.yml"]
  queue  %[echo "-----> Be sure to edit 'shared/config/database.yml'."]

  queue! %[touch "#{deploy_to}/shared/config/credentials.yml"]
  queue  %[echo "-----> Be sure to edit 'shared/config/credentials.yml'."]
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:assets_precompile'

    to :launch do
      queue "touch #{deploy_to}/tmp/restart.txt"
    end
  end
end

当我部署为’mina deploy’时,我得到错误

...

Symlinking shared paths
$mkdir -p "./config"
$mkdir -p "."
$rm -rf "./config/database.yml"
$ln -s "/home/deploy/projects/website/shared/config/database.yml" "./config/database.yml"
$rm -rf "./config/credentials.yml"
$ln -s "/home/deploy/projects/website/shared/config/credentials.yml" "./config/credentials.yml"
$rm -rf "./log"
$ln -s "/home/deploy/projects/website/shared/log" "./log"
$rm -rf "./tmp"
$ln -s "/home/deploy/projects/website/shared/tmp" "./tmp"

-----> Installing gem dependencies using Bundler
$mkdir -p "/home/deploy/projects/website/shared/bundle"
$mkdir -p "./vendor"
$ln -s "/home/deploy/projects/website/shared/bundle" "./vendor/bundle"
$bundle install --without development:test --path "./vendor/bundle" --binstubs bin/ --deployment

...

Your bundle is complete!
Gems in the groups development and test were not installed.
It was installed into ./vendor/bundle

-----> Precompiling asset files
$RAILS_ENV="production" bundle exec rake assets:precompile RAILS_GROUPS=assets
rake aborted!
File exists @ dir_s_mkdir - /home/deploy/projects/website/tmp/build-138935597031149/tmp
/home/deploy/projects/website/tmp/build-138935597031149/vendor/bundle/ruby/2.1.0/gems/sprockets-2.10.1/lib/sprockets/cache/file_store.rb:25:in `[]='
/home/deploy/projects/website/tmp/build-138935597031149/vendor/bundle/ruby/2.1.0/gems/sprockets-2.10.1/lib/sprockets/caching.rb:34:in `cache_set'

解决方法

如果没有ssh进入服务器,请确保创建了shared / tmp目录

$mkdir /home/deploy/projects/website/shared/tmp

确保你也拥有正确的权限.drwxr-XR-X

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...