在我的Rails应用程序中,我尝试在部署期间运行gulp任务,这会将css文件添加到public
目录中的目录中。在部署日志中,我看到任务成功运行,但是当我SSH到服务器时,我看不到该文件。
[2016-09-24T01:35:02+00:00] INFO: Processing execute[create critical css] action run (/srv/www/toaster/releases/20160924013146/deploy/before_migrate.rb line 43)
[2016-09-24T01:35:03+00:00] INFO: execute[create critical css] ran successfully
当我通过SSH连接到服务器并使用sudo su deploy
将我的用户更改为部署用户,然后运行gulp任务时,文件将被创建。
我做错了什么?
before_migrate
中的行看起来像这样......
execute 'create critical css' do
user 'deploy'
cwd release_path
command 'gulp criticalCss'
end
我的gulpfile中的任务看起来像这样......
gulp.task('criticalCss', function() {
glob('./public/assets/theme_templates/v3/application-*.css', function(err, matches) {
var full_css = matches[0]
penthouse({
url : 'http://performance-site.s2.fanbread.com/blogs/performance-benchmark',
css : full_css,
width: 375,
height: 667
}, function(err, criticalCss) {
console.log(err)
fs.writeFile('./public/assets/theme_templates/v3/posts_show.css', criticalCss); // Write the contents to a jekyll include
});
});
});
由于
答案 0 :(得分:1)
Chef的常用解决方案是将日志级别调高到DEBUG
以查看命令输出。不知道你如何使用当前的Opsworks做到这一点。大多数情况下,这些问题要么与$HOME
未设置的环境变量相关,要么gulp
未正确找到。
作为旁注,我不建议再使用deploy
资源。普通的git
资源可能更好。有关使用Chef进行更现代的Rails部署的示例,请参阅我的application_examples
食谱。