【问题标题】:Deployment issues with capistranocapistrano 的部署问题
【发布时间】:2012-03-11 22:37:27
【问题描述】:

我正在关注一个很好的教程here,它确实帮助我理解了一些事情。 Rails apache 和 rvm 可以很好地协同工作。我快完成了,但卡在最后一部分了。

基本上我的部署文件与他所拥有的类似,但似乎无法调试他正在寻找的内容。deploy.rb 文件如下所示:

#RVM Bootstrap
$:.unshift(File.expand_path('./lib',ENV['rvm_path']))

require 'rvm/capistrano'
set :rvm_ruby_string, '1.9.2-p318'


#bundler bootstrap
require 'bundler/capistrano'

#main details
set :application , "test"
role :web, "test"
role :app, "test"
role :db, "test", :primary => true

#server Details
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
set :deploy_to, "/var/www/test/"
set :deploy_via, :remote_cache
set :user, "passenger"
set :use_sudo, false


# repo details
set :scm, :git
set :scm_username, "passenger"
set :repository, "git@gitserver:test.git"
set :branch, "master"
set :git_enable_submodules, 1

# tasks
namespace :deploy do
  task :start, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end

  task :stop, :roles => :app do
    # Do nothing.
  end
  desc "Restart Application"
  task :restart, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

当我尝试通过 cap deploy:setup 使用 capistrano 部署应用程序时 我收到以下错误:

  * executing `deploy:setup'
  * executing "mkdir -p /var/www/test/ /var/www/test/releases /var/www/test/shared /var/www/test/shared/system /var/www/test/shared/log /var/www/test/shared/pids"
    servers: ["test"]
connection failed for: test (SocketError: getaddrinfo: Name or service not known)

我稍微修改了一下。 Rails webrick 启动 rails 应用程序没有问题,所以它一定与我部署到 apache 有关。需要注意的一点是应用名称为“app”(因为在rails中保留了test),域名为“test”。

这种不匹配可能会导致问题,但我几乎没有经验,所以我不确定。

谁能指点我在哪里调试或者它可能是什么?

【问题讨论】:

    标签: ruby-on-rails ruby apache gem capistrano


    【解决方案1】:

    角色 web、app 和 db 需要是您要部署到的服务器的 URL 或 IP。像这样的:

    task :staging do
      set :rails_env, 'staging'
      role :app, "example.com"
      role :web, "example.com"
      role :db,  "example.com", :primary => true
    end
    

    【讨论】:

    • 它是一台本地机器,所以我猜是 localhost
    • 试一试本地主机。为什么要部署到自己的机器上?只是为了测试 capistrano?
    • 只是为了测试 ruby​​。 capistrano 只是教程的一部分。它是一台具有 256mb RAM 的旧笔记本电脑,我决定在其上构建一个 ruby​​ 服务器。
    • 我实际上放弃了这个。不得不回到常规项目而不是尝试 Rails。很快我会重新审视它。感谢您的帮助。
    猜你喜欢
    • 2014-07-07
    • 2014-05-30
    • 1970-01-01
    • 2014-02-24
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多