2016-09-27 7 views
0

私のRailsアプリケーションでは、展開中にpublicディレクトリ内のディレクトリにCSSファイルを追加しようとしています。展開ログでは、タスクが正常に実行されることがわかりますが、サーバーにSSHを実行するとファイルが表示されません。AWSでsudo権限を持つユーザーとして `before_migrate.rb`コマンドを実行するOpsWorks

[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で展開ユーザーに自分のユーザーを変更して、ゴクゴクタスクを実行している間、ファイルが作成取得します。

私は間違っていますか?シェフのためのbefore_migrate

行はこのようになります...私のgulpfileで

execute 'create critical css' do 
    user 'deploy' 
    cwd release_path 
    command 'gulp criticalCss' 
end 

タスクは次のようになります...

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

通常の解決策だろうコマンド出力を表示するには、ログレベルをDEBUGまで上げる必要があります。あなたが現在のOpsworksでそれをどうやってやっているのか分かりません。ほとんどの場合、これらの問題は、$HOMEなどの環境変数に関連しているか、gulpが正しく検出されていません。

補足として、deployリソースをもう使用しないことをおすすめします。普通のgitリソースがおそらく一般的には良いでしょう。私のapplication_examplesシェフとのより現代的なRailsデプロイメントの例については、cookbookを参照してください。

+0

返信いただきありがとうございます。デフォルトでは、OpsWorksはシェフをデバッグモードで実行します。コマンドの出力は私の質問の最初のコードブロックであり、何も役に立つものは実際には表示されません。私の推測では、もし胃が見つからなければ、それを暗に示すより有用なメッセージでエラーになるでしょう。結局のところ、私はインスタンスにsshし、 'gulp criticalCSS'をdeployユーザーとして成功させることができます。展開料理ブックの使用をお勧めしない理由を広げることができますか? –

+0

'deploy'リソースは、Capistranoの構造に合うように構築されました。これは、必要以上に複雑で動きの少ない部分を持ち、非常に脆いものです。 – coderanger

関連する問題