我正在运行Capifony部署。但是,我注意到Capifony的内置命令针对之前的版本运行,而我的自定义命令正确地针对当前版本。Capifony部署针对以前版本运行一些命令
例如,如果我跑cap -d staging deploy
,我看到(加换行符)一些命令的输出是这样的:
--> Updating Composer.......................................
Preparing to execute command: "sh -c 'cd /home/myproj/releases/20130924144349 &&
php composer.phar self-update'"
Execute ([Yes], No, Abort) ? |y|
你会看到,这指的是我以前的版本 - 从2013年开始
我也看到了命令,指的是新版本的文件夹中(2014年):
--> Running migrations......................................
Preparing to execute command: "/home/myproj/releases/20140219150009/
app/console doctrine:migrations:migrate --no-interaction"
Execute ([Yes], No, Abort) ? |y|
在我的命令,我用的是#{release_path}
变量,而寻找在Capifony的代码中,它使用#{latest_release}
。但显然我无法改变Capifony的代码。
This issue against Capistrano谈到类似的事情,但我不认为它真的有帮助,因为我再也不能改变Capifony的代码。
如果我删除服务器上我releases
文件夹中,我有一个类似的问题 - #{latest_release}
没有任何价值,所以它试图做的事情一样创建一个文件夹/app/cache
(因为代码是一样的东西mkdir -p #{latest_release}/app/cache
) 。
(假设我不删除current
符号链接和文件夹release
,当它无法复制的厂商我看到特定的错误是:cp: cannot copy a directory, /home/myproj/current/vendor, into itself
然而,这是更大的问题只是症状 - 如果它认为。新发布实际上是前一个,这就解释了为什么current
也指向那里!)
任何想法?我很高兴从我的deploy.rb
或staging.rb
提供摘录(我正在使用多级扩展),但并不只是想转储整个事情,所以让我知道你感兴趣的东西!谢谢
一些额外的事情,我已经尝试,因为:重新安装capistrano&capifony没有帮助,也没有部署到一个完全新创建的主机帐户(我得到了上面提到的'/ app/cache'创建错误因为没有以前的版本)。 – Sam
哦,我的同事机器上的回购清单出现了相同的行为:-( – Sam