view docker/README.md @ 628:ef9c733cc6aa

client: show more wfs layers * Add waterway axis, waterway area and distance marks as fully loaded WFS layers. Distance marks are disabled by default, with code that honors the isVisible attribute. Code is duplicated, and marked with FIXMEs.
author Bernhard Reiter <bernhard@intevation.de>
date Tue, 11 Sep 2018 17:52:20 +0200
parents 6d7c0dbf9d21
children 86725b39b2d2
line wrap: on
line source

# Setup dev environment using Docker

Run the `build` commands from the root of your checkout, because it is
assumed as the context!

Other example commands, too, assume they are run from the root of your
checkout.

## Database setup

- Build Dockerfile with e.g.:
  ```
  docker build -t gemma_db -f docker/Dockerfile.db .
  ```

- Get a running instance with e.g.:
  ```
  docker run --name gemma_db -d -p 54321:5432 -v $PWD/schema:/opt/gemma \
         gemma_db
  ```

- Run tests for RLS policies:
  ```
  docker exec gemma_db ./run_tests.sh
  ```

## Create ER diagrams

Assuming you have installed postgresql_autodoc and graphviz on a machine
from wich you can reach your docker host, you can use the following:

- ER diagram with waterway related tables:
  ```
  postgresql_autodoc -p 54321 -h $dockerhost \
      -d gemma -U sophie --password=so2Phie4 -t dot -l . -s 'waterway'
  dot -Tpdf gemma.dot > gemma_waterway.pdf
  ```

Omit the `-s` option to get a diagram with all tables or use any other
schema name to see other parts of the whole picture.

## Network setup

- Create a network to connect containers:
  ```
  docker network create gemma
  ```

- Connect database to new network
  ```
  docker network connect gemma gemma_db
  ```
  Use `--alias gemma_db` if your container has a different name

## GeoServer setup

- Build Dockerfile with e.g.:
  ```
  docker build -t gemma_geoserver -f docker/Dockerfile.geoserv .
  ```

- Get a running instance with e.g.:
  ```
  docker run --name gemma_geoserver -d -p 8280:8080 --network gemma \
         gemma_geoserver
  ```
  Use `--network-alias gemma_geoserver` if you give your container
  a different name.

## Gemma backend setup

- Build Dockerfile with e.g.:
  ```
  docker build -t gemma_backend -f docker/Dockerfile.backend .
  ```

- Get a running instance with e.g.:
  ```
  docker run --name gemma_backend -v $PWD:/opt/gemma -d -p 8200:8000 \
             --network gemma gemma_backend
  ```
  Use `--network-alias gemma_backend` if you give your container
  a different name.

## SPA setup

- Build Dockerfile with e.g.:
  ```
  docker build -t gemma_spa -f docker/Dockerfile.spa .
  ```

- Get a running instance with e.g.:
  ```
  docker run --name gemma_spa -v $PWD/client:/opt/gemma_spa -d -p 8290:8080 \
             --network gemma gemma_spa
  ```

Now you should be able to use the application in your browser by going to
`http://HOST:8290`, with HOST being the hostname of your docker host.