这是我第一次尝试设置capistrano来部署rails应用程序。我正在从我的本地计算机部署到我的远程服务器,该服务器在同一台计算机上都有repo,web,app和mysql服务器。我正在按照这个步骤:http://www.capify.org/index.php/From_The_Beginning
我接到命令
cap deploy:start
然后我收到此错误:
*** [err :: example.com] sudo: unknown user: app
command finished
failed: "sh -c 'cd /var/www/example/current && sudo -p '\\''sudo password: '\\'' -u app nohup script/spin'" on example.com
我应该添加一个'app'用户,还是有办法改变命令运行的用户?
这是我的deploy.rb:
set :application, "example"
set :repository, "git@example.com:example.git"
set :user, "trobrock"
set :branch, 'master'
set :deploy_to, "/var/www/example"
set :scm, :git
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`
role :web, "example.com" # Your HTTP server, Apache/etc
role :app, "example.com" # This may be the same as your `Web` server
role :db, "example.com", :primary => true # This is where Rails migrations will run
显然,无处不在,它说example.com是我的服务器主机名,而且只是说例子就是应用程序名称。
答案 0 :(得分:2)
失败的命令正在尝试sudo。也许您应该将use_sudo设置为false
set :use_sudo, false
如果未设置为false
,我会收到类似的异常 祝你好运答案 1 :(得分:0)
我认为你会发现你的应用程序用于此命令的'跑步者'默认为'app'。当你拥有:用户设置时,我想你需要设置:runner或:admin runner to'trobbrock'。有关更多信息,请参阅blog post on runners。语法如下:
set :runner, 'trobrock'
set :admin_runner, 'trobrock'
我想你会发现:跑步者就是你所追求的。
也就是说,看起来像deploy:start是deprecated,不应该使用。在所有食谱中,我现在已经多次覆盖了它。既然你已经设置了部署,我建议你跳进'cap deploy'并看看会发生什么。
如果您有任何其他问题,请在发布新问题时随时与我联系:)