タイルやWMSをキャッシュするサーバを立てる

python で作られた TileCache というものがあったので WMS のキャッシュサーバを立ててみました。

例によって debian 8.1 上に docker で debian 8.1 のコンテナを作成しました。
今回は dockerfile を作成してみたので Githubリポジトリから持ってくると楽かもしれません。

zoar/tilecache

適当なディレクトリで git clone します。

$ git clone https://github.com/KMR-zoar/tilecache.git

とってきたディレクトリに移って docker build をします。

$ cd tilecache
$ docker build -t zoar/tilecache .

キャッシュを保存するディレクトリはコンテナの /tmp/tilecache なので、必要に応じて -v オプションでホストマシンのディレクトリをバインドしておくといいと思います。

$ mkdir -p /tmp/tilecache
$ docker run -i -d -p 8080:8080 -v /tmp/tilecache/:/tmp/tilecache/ -t zoar/tilecache

これでキャッシュサーバが起動状態になります。
dockerfile で busybox を入れたので、設定ファイル /etc/tilecache.cfg を編集することができると思います。

$ alias dl='docker ps -l -q'
$ docker exec -it `dl` busybox vi /etc/tilecache.cfg

OpenStreetMap のトレースをする時に、 GeoServer で動的に WMS 配信をさせていますが、どうもレスポンスが悪いのでキャッシュサーバの必要性を感じて探していました。
基盤地図情報から作ったシェープファイルも更新は1年毎程度なので、キャッシュが効いてくれた方がずっとストレスなく動いてくれるはずです。

2015-08-03追記

docker hub に登録しました。
docker pull zoar/tilecache でコンテナが落ちてくるようになったみたいです。
docker search に引っかからないのはなんでだろ。