由于未知原因,我的部署过程在资产转储上失败。尝试调试没有成功。如果我关闭资产转储 - 它会成功。这由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:未启用转储过程 - 它成功。
答案 0 :(得分:1)
您是否尝试在调试模式下部署? cap deploy -d
一次执行一项任务。您可以在capistrano执行assetic:dump
命令之前检查部署。在这一点上,我会运行资产:手动转储并检查抛出的错误。
答案 1 :(得分:0)
Jenkins
是否有权写入此目录?
如果是这样,这会让我想起一个月前我遇到的错误:assetic:dump
命令由于缺少LESS
编译器而失败。在第一次部署期间发生了这种情况,但是无声地失败了,就像它对你一样。
您是否碰巧使用LESS
或任何类似的实用工具(SASS
,YUI
,UglifyJS
...)?如果是,请检查该用户是否具有执行该权限的适当权限,或者该用户是否未按用户安装(而不是全局)......