タイルやWMSをキャッシュするサーバを立てる
python で作られた TileCache というものがあったので WMS のキャッシュサーバを立ててみました。
例によって debian 8.1 上に docker で debian 8.1 のコンテナを作成しました。
今回は dockerfile を作成してみたので Github のリポジトリから持ってくると楽かもしれません。
適当なディレクトリで 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
に引っかからないのはなんでだろ。