何らかのブログシステムを構築してみたいと思い調べてみたところjekyllというのが良さそうということがわかったのでちょっと入れてみることにした。
まずboot2dockerを入れて起動
$ brew install boot2docker $ boot2docker init $ boot2docker up
しかし、うまくいかず。よく見るとinitの段階でエラーが出ていた。
原因はvirtualboxの方にあるらしいく、入っているものは結構古いものだったので
入れなおすことにした。
/ApplicationのVirtualbox.appを消した上で
$ brew cask install virtualbox
このときcaskの場所が変わっていて少しハマったのだがそれについてはこちら
brew caskが動かない - MEMOcho-
これでboot2dockerのVMが正しく起動した
次にjekyllが入ったimageを作成する
$ mkdir jekyll $ cd jekyll $ docker build -t jekyll ./
Dockerfileはこちら
# jekyll FROM ruby:latest RUN apt-get update RUN apt-get -qq RUN apt-get install -y vim RUN gem install jekyll RUN gem install therubyracer
最初jekyllのみ入れていたのだが、jekyllコマンドを実行してみると以下のようなエラーが出た
/usr/local/bundle/gems/execjs-2.2.2/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
runtimeが見つからないということで、以下のページを参考にtherubyracerを同時にgem installするようにした
Ruby:Rails4 で Could not find a JavaScript runtime エラー | サイト運営の私的メモ
containerを作成して中でjekyllを起動してみる
$ docker run -it -p 4000:4000 jekyll /bin/bash docker> mkdir /var/jekyll docker> cd /var/jekyll docker> jekyll new hoge docker> cd hoge docker> jekyll serve
jekyllは立ち上げるとデフォルトで4000番にてアクセスできるようになるらしいので
- -p 4000:4000
としておいた
最後にPCからboot2dockerのVMへ4000番をポートフォワーディングする
$ ssh -NfL 4000:127.0.0.1:4000 docker@localhost -p 2022 -i ~/.ssh/id_boot2docker
これでlocalhost:4000にアクセスするとjekyll newで作成されたデフォルトの画面が表示された