在资产转储中使用Capifony部署Symfony应用程序失败

时间:2014-03-15 14:00:27

标签: symfony capistrano assets assetic continuous-deployment

由于未知原因,我的部署过程在资产转储上失败。尝试调试没有成功。如果我关闭资产转储 - 它会成功。这由Jenkins CI执行

该项目使用SASS,指南针进行资产转储。 如果在cli上运行(与Jenkins打开的服务器相同) - 它会成功。

capifony_copy_local strategy
explicit settings for php

部署输出:

cap HOSTS=www-node1.domain.com production deploy
--> Updating code base with capifony_copy_local strategy
--> Using Copy Local Strategy
--> Downloading Composer to temp location...................✔

--> Installing Composer dependencies in temp location.......✔

--> Building bootstrap file in temp location................✔

--> Creating cache directory................................✔

--> Creating symlinks for shared directories................✔

--> Creating symlinks for shared files......................✔

--> Normalizing asset timestamps............................✔

--> Dumping all assets to the filesystem....................✘
*** [deploy:update_code] rolling back
failed: "sh -c 'sh -c '\\''cd /var/www/portal/releases/20140315133521 && /usr/bin/php app/console assets:dump --env=prod'" on www-node1.domain.com

IF assetic:未启用转储过程 - 它成功。

2 个答案:

答案 0 :(得分:1)

您是否尝试在调试模式下部署? cap deploy -d一次执行一项任务。您可以在capistrano执行assetic:dump命令之前检查部署。在这一点上,我会运行资产:手动转储并检查抛出的错误。

答案 1 :(得分:0)

Jenkins是否有权写入此目录?

如果是这样,这会让我想起一个月前我遇到的错误:assetic:dump命令由于缺少LESS编译器而失败。在第一次部署期间发生了这种情况,但是无声地失败了,就像它对你一样。

您是否碰巧使用LESS或任何类似的实用工具(SASSYUIUglifyJS ...)?如果是,请检查该用户是否具有执行该权限的适当权限,或者该用户是否未按用户安装(而不是全局)......