view docker/README.md @ 1133:dd4071019676

Delete contour lines with their sounding result Contour lines are no independent data sets and thus can safely be deleted with sounding results. In passing, name the primary key as such.
author Tom Gottfried <tom@intevation.de>
date Wed, 07 Nov 2018 18:13:02 +0100
parents 86725b39b2d2
children ce24990b3d5c
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.

## Network setup

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

## 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 \
          --network gemma gemma_db
  ```
  Use `--network-alias gemma_db` if your container has a different name

- 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.

## 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.