筆者は普段はUbuntuで作業しています。最近、QGISのアップデートに失敗して、QGISのインストールが自分の力では難しい状況になってしまいました。
いつも作業しているgdalのdockerにQGISもインストールして使うことを思いつきました。
Dockerfileの作成
xtermとqgisのインストールが必要です。 gdalの公式イメージをベースに作成します。 技術的な詳細は参考文献を参照してください。
FROM osgeo/gdal MAINTAINER tty6335 ENV DISPLAY=$DISPLAY RUN apt-get -y update && apt-get -y upgrade RUN apt-get install -y xterm RUN apt-get install -y qgis
dockerfileを配置したディレクトリでbuildを実行します。今回はgdal_qgisという名前のイメージにします。
docker image build -t gdal_qgis:latest ./
コンテナとQGISの起動
コンテナを起動する前にubuntuのX windowがdockerからの通信を受け付けるようにする必要があります。
今回は、dockerからの通信だけを許可するのが面倒なので、全ての接続を許可するようにします。
xhost local:
コンテナを起動します。今回は、gdal_qgisという名前をつけます。
docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix --name gdal_qgis gdal_qgis /bin/bash
コンテナに入り、プロンプトでqgisと打つとGUIのQGISが起動します。
$ docker exec -it gdal_qgis /bin/bash root@00410ee6b28a:/# qgis Warning: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' <string>:1: DeprecationWarning: setapi() is deprecated
起動できました!!!