【メモ】DockerによるGIS開発環境構築(Python)

パッケージマネージャの選択

GIS関連の環境構築はライブラリの依存関係が複雑らしく、python:3.x ベースで構築するのは一手間ありそうなので、別の手段を考える。Anacondaは個人開発では問題ないが、会社で使う場合(商用利用)は有償になるので選択肢から外す。Minicondaは無償で利用可能だが、Anacondaのレポジトリから標準以外のパッケージをダウンロードして利用する場合は、有償ライセンスが必要とのことなので、こちらも選択肢から外す。mambaforge は conda-forge を公式チャネルにし、すべてオープンソース(MIT/BSD)ライセンスに限定されているため、Anaconda由来のライセンス制限を回避できるとのことでこれを採用する。

Dockerfileの記述と実行方法

Dockerfileは以下のように記述しておく。

FROM condaforge/mambaforge:latest AS builder

RUN set -x

RUN apt update -y && apt upgrade -y && \
    apt install -y wget sudo vim && \
    apt clean

RUN conda install -y -c conda-forge \
    geopandas \
    osmnx \
    geopy \
    streamlit \
    plotly \
    jupyter \
    openpyxl \
    geodatasets

Dockerfile をもとにDockerイメージをビルドする。

docker build -t test-image .

IMAGE IDを確認する。

docker images

Docker イメージ(491209e32a60)からコンテナを起動し、名前をtest-imageとして特定のフォルダ(workdir)やポート(8080)のバインドもしておく。

docker run --name test-image -it --rm -v ~/test/workdir:/workdir -p 8080:8080 491209e32a60

これによりターミナル上でDockerコンテナ環境に入ることができる。

コードの編集

Pyrhonコードの編集はJupyter notebookで行う

jupyter notebook --allow-root --no-browser --port=8080 --ip=0.0.0.0

コメント

タイトルとURLをコピーしました