🌏

PostGIS の検証環境をさくっと用意する

2022/08/03に公開

気持ち

PostGIS、Homebrew で入れるとクソデカ依存性でぐっちゃぐちゃになるし手動ビルドするのもめんどくさいしどうにかしたい。

結論

Docker Hub で公開されている公式の Docker イメージ postgis/postgis が便利。

$ docker run --name postgis --rm -d -p 5432:5432 -v postgres-tmp:/var/lib/postgresql/data postgis/postgis:14-3.2
...
$ psql -h 127.0.0.1 -p 15432 -U postgres
psql (14.4)
Type "help" for help.

postgres=# \dx
                                        List of installed extensions
          Name          | Version |   Schema   |                        Description
------------------------+---------+------------+------------------------------------------------------------
 fuzzystrmatch          | 1.1     | public     | determine similarities and distance between strings
 plpgsql                | 1.0     | pg_catalog | PL/pgSQL procedural language
 postgis                | 3.2.1   | public     | PostGIS geometry and geography spatial types and functions
 postgis_tiger_geocoder | 3.2.1   | tiger      | PostGIS tiger geocoder and reverse geocoder
 postgis_topology       | 3.2.1   | topology   | PostGIS topology spatial types and functions
(5 rows)

postgres=# select st_distance(st_makepoint(0,0), st_makepoint(1,0));
 st_distance
-------------
           1
(1 row)

補足

Docker は下記を参考に Lima をセットアップして launchd で自動起動するようにした。

GitHub にある docker.yaml そのままでほぼ動いたけど、Ubuntu イメージのバージョン決め打ちは気持ち悪いので latest の x86_64 だけ残してコメントアウトした。

筆者環境:

$ sw_vers
ProductName:	macOS
ProductVersion:	12.5
BuildVersion:	21G72
$ uname -a
Darwin ... 21.6.0 Darwin Kernel Version 21.6.0: Sat Jun 18 17:07:25 PDT 2022; root:xnu-8020.140.41~1/RELEASE_X86_64 x86_64

Discussion