ポートフォリオを作ってみようと思い、以下を参考にやってみたらいろいろはまったのでメモ
[GitHubPages + Jekyll] 無料でWebページを作ってみた
ローカル(Windows)にJekyll環境構築 -> 失敗
Rubyのインストールはできたものの、gemでJekyllを入れようとした際に失敗。
MSYS2が必要だということなので入れてみたがそれでもダメ。
ログを追っていけば何とかなりそうな感じはしたが、ドツボにはまりそうな予感がしたので
別の方法に変更。
>gem install jekyll
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
ERROR: Error installing jekyll:
ERROR: Failed to build gem native extension.
current directory: C:/tools/ruby25/lib/ruby/gems/2.5.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
C:/tools/ruby25/bin/ruby.exe -r ./siteconf20181117-9632-11acpda.rb extconf.rb
creating Makefile
current directory: C:/tools/ruby25/lib/ruby/gems/2.5.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
make "DESTDIR=" clean
'make' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
current directory: C:/tools/ruby25/lib/ruby/gems/2.5.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
make "DESTDIR="
'make' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
make failed, exit code 1
Gem files will remain installed in C:/tools/ruby25/lib/ruby/gems/2.5.0/gems/http_parser.rb-0.6.0 for inspection.
Results logged to C:/tools/ruby25/lib/ruby/gems/2.5.0/extensions/x64-mingw32/2.5.0/http_parser.rb-0.6.0/gem_make.out
Vagrant(Ubuntu)にJekyll環境構築 -> 失敗
Windowsだからアカンかったんやと思い、Linux(Ubuntu)でやってみるも失敗。
そもそも、Rubyのインストールで無駄にはまってしまった。
最初はapt-getでインストールしたRubyを使おうとしたがgem実行時にバージョンが古くてダメっぽい。
rbenvを使ってインストールしてみるも、これでもバージョンが違うといわれてダメ。
これはログを追っても何とかなりそうな気がしなかったので断念。
Vagrant(Ubuntu + Docker)にJekyll環境構築 -> 成功
JekylのDockerイメージがあったのでそれを使ってみた。
が、最初はうまくいかなかった。
というのもGitHubPages用のpagesというイメージタグがあり、そちらを使う必要があったためだった。
以下の2ファイルをリポジトリ直下において vagrant upすればローカル環境の出来上がり。
ただ、この方法だと--watchオプション付けても変更が反映されないので注意。おそらく、_siteフォルダのほうに実体ができてるからだと思う。
# -*- mode: ruby -*-
# vi: set ft=ruby :
unless Vagrant.has_plugin?("vagrant-docker-compose")
system("vagrant plugin install vagrant-docker-compose")
end
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network "forwarded_port", guest: 4000, host: 4000
config.vm.provision :docker
config.vm.provision :docker_compose, yml: "/vagrant/docker-compose.yml"
end
version: '2'
services:
jekyll:
image: jekyll/jekyll:pages
ports:
- "4000:4000"
command: "jekyll serve"
volumes:
- /vagrant:/srv/jekyll
まとめ
Dockerは神