blog
はじめての Docker シリーズはじめてのDocker:Docker上で動かしているMiddlemanにアクセスしてLiveReloadを使う(小ネタ)
この記事は書かれてから1年以上経過しており、内容が古い場合があります。
Docker上でMiddleman Serverを動かし、Boot2docker経由でサイトにアクセスした際にLiveReloadも動かす方法について小ネタを紹介します。Dockerコンテナはインフラが得意な方が作っている前提で説明するので、分からない部分は最寄りのインフラ屋さんにご相談ください。Dockerについては以前紹介したはじめてのDocker:ウェブデザイナーでも覚えておきたいMac向けDocker環境構築と使い方をどうぞ。
LiveReloadが動作する条件
まず、ブラウザからアクセスしたいWebサーバーはBoot2docker上のDockerコンテナで動いているWebサーバーです。つまりBoot2docker(192.168.59.103:4567
)を経由してDockerコンテナ上で動くWebサーバー(0.0.0.0:4567
)にアクセスしています。LiveReloadも同様にDockerコンテナ上のWebSocketサーバー(0.0.0.0:35729
)と通信してブラウザの拡張機能がページをリロードします。
原理は簡単ですが、Boot2docker(192.168.59.103:35729
)からWebSocketサーバー(0.0.0.0:35729
)につながるようにしてやることでLiveReloadが使えるようになります。
解決方法
1つの解決方法としてBoot2dockerの35729
ポートをローカルマシンのlocalhost:35729
に割り当てる方法があります。$ boot2docker up
でBoot2dockerを起動後に以下のコマンドを実行します。
$ boot2docker ssh -L 35729:localhost:35729
対象のコンテナを起動していればLiveReloadが動くようになるはずです。 以上、小ネタの紹介でした。
参考サイト
シリーズ
- はじめてのDocker:ウェブデザイナーでも覚えておきたいMac向けDocker環境構築と使い方
- はじめてのDocker:Docker上で動かしているMiddlemanにアクセスしてLiveReloadを使う(小ネタ)