Ghost on Docker 0.8 on Mavericks

2013年のTop 10 new opensource softwareみたいな記事で、DockerGhostが、気になったので、Dockerで仮想OSを作ってそこでGhostを構築してみようと思い立った。折しもDocker 0.8でMac対応したとの記事があったし。

Dockerのインストールはhomebrewをインストールしてあれば簡単で、 http://docs.docker.io/en/latest/installation/mac/の通りにやればよい。ここからがDockerのすばらしいところで、https://github.com/livebytes/docker-ghostみたいなGhost用のDockerfileを使うと、Ghostがインストールされた仮想OSが自動で準備されて起動するだけでOK、のはずだった。

sudo docker run -d -p 49167:2368 -volumes-from ghost-data ghost

って感じで起動すると、Ghostのポート2368がホストのポート49167にリダイレクトされるので、あとはブラウザでlocalhost:49167とたたくだけなんだけど、connection refusedされるし、そもそもlistenしてない。ここから悩んだけど、実はホストというのはOS Xじゃなくて、boot2dockerが起動しているVirtualBox上のLinuxのことだった。だから、Macのブラウザで見るためには、VirtualBoxでもう一回ポートフォワードしてあげないといけない。下のポストでようやく気づいた。 つまり、Mac対応というのはクライアントが対応しただけで、ホストはLinuxじゃないとダメで、だからVirtualBoxが必要なんですね。

OSXでDockerを試す - walf443's blog

チュートリアルとかやるときにポートにバインドする例とかあるけど、残念ながら、OSX側にはバインドされないので、boot2docker sshしてログインしたあとにバインドしたポートを叩かないといけないもよう。このあたりvirtualboxのイメージに対して名前でアクセスできて、直接ポートアクセスできる、とかであればよいんだけどな。。。

肝心のGhostはサイトのビデオ(https://ghost.org/features/)にあるとおり、なかなかかっこいいです。リアルタイムでMarkdownがプレビューできる様は、おおっって感じですね。日本語入力にまだ問題がありますが。

追記

Vagrantな、dbough/vagrant-ghost · GitHubを使うと一瞬でセットアップ完了です。こっちのほうが簡単。bootstrap.shのバージョンを最新版にするだけです。forkしてバージョンだけ変更したのがこちら eswai/vagrant-ghost · GitHub