杰基尔厨师食谱

时间:2012-12-12 01:06:04

标签: jekyll chef chef-recipe

在某些方面,这是厨师问题的入门。但是,我正在尝试创建一个简单的配方,从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

1 个答案:

答案 0 :(得分:2)

我已经安装了宝石并且在此之前需要它们

gem_package "nokogiri" do
  action :nothing
end.run_action(:install)

gem 'nokogiri'
require 'nokogiri'

希望这对你有用(用jekyll尝试并且有效)