# database PostGIS ------------------ # 使い方 - 'Docker compose' ## 1) 準備 * Use by DockerHub `kartoza/postgis:9.6-2.4` * Use by DockerHub `dpage/pgadmin4` - 空のディレクトリを作成 - `$ mkdir ./dbdata` ## 2) PostGIS(osmdb) データベースとpgadmin4を立ち上げる - YMLファイルを作成 - `$ vi docker-compose.yml` ``` version: '3' services: postgis: image: kartoza/postgis:9.6-2.4 container_name: osmdb restart: always volumes: - dbdata:/var/lib/postgresql/ ports: - 5432:5432 environment: POSTGRES_USER: alex POSTGRES_PASS: password POSTGRES_DBNAME: osmdb ALLOW_IP_RANGE: 0.0.0.0/0 pgadmin4: image: dpage/pgadmin4 container_name: pgadmin4 ports: - 80:80 environment: PGADMIN_DEFAULT_EMAIL: pgadmin@mail.com PGADMIN_DEFAULT_PASSWORD: password volumes: dbdata: ``` ## 3) 起動 - `$ docker-compose up -d` ``` Creating network "postgis_default" with the default driver Creating volume "postgis_dbdata" with default driver Creating pgadmin4 ... Creating osmdb ... Creating pgadmin4 Creating osmdb ... done ``` - `$ docker-compose ps` ## 4) "pgAdmin4"で接続を確認する 4-1) webブラウザ: [http://localhost](http://localhost) 4-2) pgAdmin4 : Login * [http://localhost](http://localhost) * userid: `pgadmin@mail.com` * password: `password` 4-3) pgAdmin4 : 接続 / Connection * host name: `172.17.0.1` * port: `5432` * database admin: `postgres` * user name: `alex` * password: `password` ## 5) 停止 - 通常停止 - `$ docker-compose down` - 停止(DBデータ削除) - `$ docker-compose down -v` ------------------ # 使い方 - **pure docker** ## PostGIS(osmdb) データベースを立ち上げる "PostGIS"を起動する * Use by DockerHub `kartoza/postgis:9.6-2.4` 1) `docker pull kartoza/postgis:9.6-2.4` 2) `WORKAREA=$(pwd)` 3) `mkdir $HOME/pg_data` 4) `docker run --name=osmdb -m 2g -d -e POSTGRES_USER=alex -e POSTGRES_PASS=password -e POSTGRES_DBNAME=osmdb -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -v $HOME/pg_data:/var/lib/postgresql --restart=always kartoza/postgis:9.6-2.4` | param | comment | |------------------------------|-----------| | `--name=osmdb` | | | `-m 2g` | momory 2GB | | `-e POSTGRES_USER=gisuser` | | | `-e POSTGRES_PASS=password` | | | `-e POSTGRES_DBNAME=osmdb` | | | `-e ALLOW_IP_RANGE=0.0.0.0/0` | すべてのIPからの接続を許可する | | `-p 5432:5432` | | | `-v $HOME/pg_data:/var/lib/postgresql` | PostgreSQL databade data folder | | `--restart=always` | | ``` $ docker pull kartoza/postgis:9.6-2.4 $ mkdir $ mkdir $HOME/pg_data $ docker run -m 2g --name=gisdb -d -e POSTGRES_USER=alex -e POSTGRES_PASS=password -e POSTGRES_DBNAME=osmdb -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -v $HOME/pg_data:/var/lib/postgresql --restart=always kartoza/postgis:9.6-2.4 $ ``` ## "pgAdmin4"で接続を確認する 1) `docker pull dpage/pgadmin4` 2) `docker run --name=pgadmin4 -p 80:80 -e "PGADMIN_DEFAULT_EMAIL=gisuser@domain.com" -e "PGADMIN_DEFAULT_PASSWORD=gisuser" -d dpage/pgadmin4` | param | comment | |------------------------------|-----------| | --name=pgadmin4 | | | -e "PGADMIN_DEFAULT_EMAIL=gisuser@domain.com" | | | -e "PGADMIN_DEFAULT_PASSWORD=gisuser" | | 3) pgAdmin4 : Login * `http://localhost/` * userid: `gisuser@domain.com` * password: `gisuser` 4) pgAdmin4 : 接続 / Connection * host name: `172.17.0.1` * port: `5432` * database admin: `postgres` * user name: `alex` * password: `password` ## "PostGISへの接続設定ファイル"を準備する * postgis `osmdb.properties` ``` db_driver=org.postgresql.Driver db_url=jdbc:postgresql://172.17.0.1:5432/osmdb db_user=alex db_passwd=password ``` 6. osm2pgsql ``` echo '*:*:*:alex:password' > /root/.pgpass echo '*:*:*:postgres:password' >> /root/.pgpass echo '*:*:*:gisuser:password' >> /root/.pgpass chmod 600 /root/.pgpass ``` 91. stop pgAdmin4 `docker stop stupefied_poitras` 92. stop postGIS `docker stop postgis`