在某些方面,这是厨师问题的入门。但是,我正在尝试创建一个简单的配方,从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
答案 0 :(得分:2)
我已经安装了宝石并且在此之前需要它们
gem_package "nokogiri" do
action :nothing
end.run_action(:install)
gem 'nokogiri'
require 'nokogiri'
希望这对你有用(用jekyll尝试并且有效)