微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐