結論から言うと、ローカルでbundle install
した際に生成されたGemfile.lockを修正したら上手くいきました。
PLATFORMS
の指定を空にしました。wercker上でbundle
実行する際に指定できればいいんですが、
できなさそうだったので致し方なく。
では、以下はここに至るまでのプロセスです(おまけ)。
経緯(おまけ)
最初のエラーはこちらでした。
「あなたはjekyllの0以上を要求していますがbundleは2.5.2以上でロックしてますよ」と。
「じゃあ2.5.2入れてください」って思いますが、そうはならないのがbundleの不思議。
ちなみにこの時のGemfileは以下。
特にjekyllのバージョンは指定しません。
これに基づいてbundle update
して出来上がっていたGemfile.lockはこちら。
確かにGemfile.lockでは2.5.2以上になってますね。
Gemfileでバージョン指定しておらず、一方でGemfile.lockでバージョン指定したらGemfile.lockが優先されると思っていたのですがそうじゃないのかな?
試しに、ローカルのGemfileのjekyllにバージョン指定の記述を追加します。
一応、bundle update
もしておきます。ローカルは問題なく動作。
しかしwerckerではbuildエラーが出ています。
指定あってるじゃん!なのにエラー。意味がわかりません。このあたりから「バージョン指定の問題ではないのでは?」と感じます。
試しにGemfile.lockを退避させてwerckerでbuildしてみます。すると・・・
build通った。
なんで通るのか。退避させたGemfile.lockと内容付け合わせてみました。
ここで気づきまして、「あ、OSの差の問題だ」と。で、Gemfile.lock見たら
となっていたので、これを外してwerckerでbuild成功して終了。但し、根本的な原因は依然不明のままです。詳しい人いたら教えてほしい・・。
それにしてもbundlerは便利なのですが、環境の差を完璧に吸収してくれるものでもないですし、あまり頼りすぎるのも問題なのかなぁと感じた次第です。