Newer
Older
postgis / README.md
@haya4 haya4 on 9 Oct 2023 4 KB update
# 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`