在某些方面,这是厨师问题的开始。但是,我正在尝试创建一个简单的方法来从 github 签出我的 jekyll 代码,然后运行 jekyll 在本地构建它。我还没有开始担心让 nginx 配置运行,但我已经尝试了大约 100 种不同的“before_migrate”脚本排列,还没有找到一种方法将 jekyll 加载到可用的 gem 中或加载到路径中做一个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 文档包含一个 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