いくつかの点で、それはシェフの問題を始めることです。しかし、github から自分の jekyll コードをチェックアウトし、jekyll を実行してローカルでビルドするための簡単なレシピを作成しようとしています。nginx 構成を実行することについて心配し始めたわけではありませんが、「before_migrate」スクリプトの約 100 の異なる順列を試しましたが、利用可能な gem またはへのパスに jekyll をロードする方法をまだ見つけていません。するcommand "jekyll ..."
現在のレシピは次のとおりです。
include_recipe "git"
application "corpsite" do
path "/opt/tubularlabs/corpsite"
repository "git@github.com:Tubular/corpsite.git"
revision "master"
deploy_key <<EOF
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
EOF
before_migrate do
execute 'Deploy Jekyll blog' do
chef_gem "jekyll" do
action :install
end
require "jekyll"
command "jekyll"
action :run
end
end
end
アップデート:
問題はまったくレシピの問題ではなく、HTML ドキュメントの 1 つに UTF-8 文字が含まれており、jekyll がバーフィングで実行されていたことが判明しLC_ALL=C
ました。もちろん、これが私が今までに書こうとした最初のレシピだったことは助けにはなりませんでした.
歴史的な理由から、最終的なスクリプトは次のとおりです
before_migrate do
chef_gem "jekyll"
execute 'Deploy Jekyll blog' do
cwd release_path
environment ({"LC_ALL" => "en_US.UTF-8"})
command "jekyll"
end
end