私の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
});
});
});
おかげ
返信いただきありがとうございます。デフォルトでは、OpsWorksはシェフをデバッグモードで実行します。コマンドの出力は私の質問の最初のコードブロックであり、何も役に立つものは実際には表示されません。私の推測では、もし胃が見つからなければ、それを暗に示すより有用なメッセージでエラーになるでしょう。結局のところ、私はインスタンスにsshし、 'gulp criticalCSS'をdeployユーザーとして成功させることができます。展開料理ブックの使用をお勧めしない理由を広げることができますか? –
'deploy'リソースは、Capistranoの構造に合うように構築されました。これは、必要以上に複雑で動きの少ない部分を持ち、非常に脆いものです。 – coderanger