- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
deploy:setup
的正确方法是什么?并使用 Capistrano 进行冷部署?
使用
deploy.rb
这是我的场景:
运行时deploy:setup
, Capistrano 利用 root 权限为部署准备目录结构:
$ cap deploy:setup
* 2013-02-28 14:50:21 executing `deploy:setup'
* executing "sudo -p 'sudo password: ' mkdir -p /home/vagrant/example /home/vagrant/example/releases /home/vagrant/example/shared /home/vagrant/example/shared/system /home/vagrant/example/shared/log /home/vagrant/example/shared/pids"
servers: ["example.com"]
[example.com] executing command
command finished in 29ms
* executing "sudo -p 'sudo password: ' chmod g+w /home/vagrant/example /home/vagrant/example/releases /home/vagrant/example/shared /home/vagrant/example/shared/system /home/vagrant/example/shared/log /home/vagrant/example/shared/pids"
servers: ["example.com"]
[example.com] executing command
command finished in 11ms
还在 deploy:cold
Capistrano 尝试结帐(在这种情况下来自 git)并写为 vagrant
用户 – deploy.rb
中指定的用户:
$ cap deploy:cold
* 2013-02-28 14:50:47 executing `deploy:cold'
* 2013-02-28 14:50:47 executing `deploy:update'
** transaction: start
* 2013-02-28 14:50:47 executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote git@github.com:mariusbutuc/realtime-faye.git master"
command finished in 2360ms
* executing "if [ -d /home/vagrant/example/shared/cached-copy ]; then cd /home/vagrant/example/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard a7c05516bc31c2c18f89057c02f84bfad83a6b59 && git clean -q -d -x -f; else git clone -q git@github.com:mariusbutuc/realtime-faye.git /home/vagrant/example/shared/cached-copy && cd /home/vagrant/example/shared/cached-copy && git checkout -q -b deploy a7c05516bc31c2c18f89057c02f84bfad83a6b59; fi"
servers: ["example.com"]
[example.com] executing command
** [example.com :: out] fatal: could not create work tree dir '/home/vagrant/example/shared/cached-copy'.: Permission denied
command finished in 26ms
*** [deploy:update_code] rolling back
* executing "rm -rf /home/vagrant/example/releases/20130228195049; true"
servers: ["example.com"]
[example.com] executing command
command finished in 7ms
failed: "sh -c 'if [ -d /home/vagrant/example/shared/cached-copy ]; then cd /home/vagrant/example/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard a7c05516bc31c2c18f89057c02f84bfad83a6b59 && git clean -q -d -x -f; else git clone -q git@github.com:mariusbutuc/realtime-faye.git /home/vagrant/example/shared/cached-copy && cd /home/vagrant/example/shared/cached-copy && git checkout -q -b deploy a7c05516bc31c2c18f89057c02f84bfad83a6b59; fi'" on example.com
当然,deploy:check
报告毫不意外:vagrant
用户无法写入在 deploy:setup
期间创建的目录因为这两个用户属于不同的组 – root:root
与 vagrant:vagrant
:
$ cap deploy:check
[...]
The following dependencies failed. Please check them and try again:
--> You do not have permissions to write to `/home/vagrant/example'. (example.com)
--> You do not have permissions to write to `/home/vagrant/example/releases'. (example.com)
--> `/home/vagrant/example/shared' is not writable (example.com)
这背后的原因是什么,还没有满足什么先决条件,所以部署通过了这个问题?
最佳答案
deploy:setup
任务可能不应该使用 sudo
创建 app 目录,因为这可能导致它被 root
拥有.
您可以在 deploy.rb
中将其关闭文件:
set :use_sudo, false
关于ruby-on-rails - 如何为部署设置服务器并使用 Capistrano 进行冷部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15144815/
我想做一些类似 Jar cvf file.jar *.class 的事情,但是我在我的 jre6 java 安装中没有看到 jar 编译器文件。 jar 是独立的东西吗?我想安装? 最佳答案 您需要下
阅读时 an intro to rxjs我读了以下内容并有点担心 the second subscription will restart the sequence from the first va
如何将 MainEngine Observable 转换为 Cold?来自这个例子: public IObservable MainEngine { get
我最近一直在进行冷迁移...这意味着我无法在进行迁移时从应用程序级别读取/写入数据库(维护页面)。 这样就不会因为更改结构而发生错误,而且如果负载很大,我也不希望 mysql 在迁移过程中崩溃。 我的
我需要在 Linux 中以物理方式关闭 PCI 设备的电源。我已经找到了我需要的函数,但似乎编写了一个内核模式应用程序来使用该库,因为我在内核头文件中找到了它。 我在 drivers/pci/pci.
我是一名优秀的程序员,十分优秀!