我正在運行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