0

我正在尝试使用 capistrano 进行部署。服务器上安装了 RVM,ruby 版本为 1.93p385。

这是 cap 生产部署的日志:

http://pastie.org/private/vs336nrgejpwdkuelufnma#

为什么 capistrano 无法部署?

这是部署文件:

require "rvm/capistrano"
require "bundler/capistrano"
set :rvm_ruby_string, "1.9.3-p385"
set :rvm_type, :user #Should the user by the username?
require "capistrano/ext/multistage"

set :http_server, :apache2
set :rake, "#{rake} --trace"
set :application, "app"
set :user,        "myuser" # The server's user for deploys

set :ruby_version, "1.9.3-p385"

set :scm,         "git"
set :repository,  "my git repo here"

set :deploy_to,   "/var/www/#{application}"
set :deploy_via,  :remote_cache

set :use_sudo,    true

default_run_options[:pty]   = true # Must be set for the password prompt from git to work
ssh_options[:forward_agent] = true

set :nodejs, true

# if you want to clean up old releases on each deploy uncomment this:
after "deploy:restart", "deploy:cleanup"

服务器是 Ubuntu 10.04 LTS

4

2 回答 2

1
** [out :: server] No such file or directory - /var/www/app/releases/20130216170229/config/database.yml

服务器上是否存在此路径?您可能需要/var/www/app/releases手动创建该部分,然后 capistrano 将部署到该部分。

于 2013-02-16T17:20:11.417 回答
0

这是 capistrano 部署的常见模式.gitignore database.yml。然后数据库配置驻留在<:deploy_to>/shared/config/. 您使用此 cap 任务对发布目录中的 db 配置进行符号链接:

namespace :deploy do
  task :start do ; end
  task :stop do ; end

  desc "Symlink shared folders on each deployment"
    task :symlink_shared do
    run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
  end
end

before "deploy:assets:precompile", "deploy:symlink_shared"
于 2013-02-16T20:31:30.780 回答