Mercurial > gemma
view docker/README.md @ 5348:45b03e8ca47e extented-report
Toggles in user overview and in details section as well established
This commit introduces toggles to change the state for administrative
users to be able to receive the DQL Report.
For quick access there is the possibility to change via overview.
If you want to edit this in the details or if you change the role
of the user to a non administrative, there is the possibility to change
the flag in a fast way.
When the user looses administrative privilege the option is not available
and the according flag is set to "false".
Aside: Changed user.go to resolve inconsitencies in frontend where the
key "reports" was missing due to "omitempty" in marshalling the go objects.
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Mon, 21 Jun 2021 16:41:39 +0200 |
parents | 8dd59e2c9d3d |
children |
line wrap: on
line source
# Build and run your dev environment using Docker - [Build and run your dev environment using Docker](#build-and-run-your-dev-environment-using-docker) - [Build and run your gemma application with Docker Compose in one step](#build-and-run-your-gemma-application-with-docker-compose-in-one-step) - [Hints and tricks](#hints-and-tricks) - [Build and run the gemma application with Docker manually](#build-and-run-the-gemma-application-with-docker-manually) - [Network setup](#network-setup) - [Database setup](#database-setup) - [Create ER diagrams](#create-er-diagrams) - [GeoServer setup](#geoserver-setup) - [Gemma backend setup](#gemma-backend-setup) - [SPA setup](#spa-setup) 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. ## Build and run your gemma application with Docker Compose in one step Requires at least Docker Engine release 17.12.0+. Because of Compose file format 3.5 for named networks. If you fiddle around with the following error message: `Version in "./docker-compose.yml" is unsupported` take a look at the comments in the head of the `docker-compose.yml` file. From your docker directory, start up your gemma application by running `docker-compose up`. Here an example for build and running the gemma application: ```shell cd docker docker-compose -p gemma up ``` Note: The `-p` flag specifies an alternate project name (default: directory name). Now you should be able to use the application in your browser by going to `http://HOSTNAME:8290`, with `HOSTNAME` being the hostname of your docker host. Stop the application, either by running `docker-compose down` from within your docker directory in the second terminal, or by hitting `CTRL+C` in the original terminal where you started the gemma application. ### Hints and tricks If you want to run your services in the background, you can pass the `-d` flag (for `detached` mode) to `docker-compose up` and use `docker-compose ps` to see what is currently running. Take a look at the following example. ```shell docker-compose up -d Starting gemma_db ... Starting gemma_db ... done Starting gemma_geoserver ... Starting gemma_geoserver ... done Starting gemma_backend ... Starting gemma_backend ... done Starting gemma_spa ... Starting gemma_spa ... done ``` ```shell docker-compose ps Name Command State Ports ---------------------------------------------------------------------------------- gemma_backend /usr/local/bin/gemma -c /o ... Up 0.0.0.0:8200->8000/tcp gemma_db /usr/lib/postgresql/11/bin ... Up 0.0.0.0:54321->5432/tcp gemma_geoserver /usr/share/tomcat8/bin/cat ... Up 0.0.0.0:8280->8080/tcp gemma_spa /bin/sh -c make -f Makefil ... Up 0.0.0.0:8290->8080/tcp ``` For more infos about Docker Compose take a look at: https://docs.docker.com/compose/ ## Build and run the gemma application with Docker manually Or build and run your dev enviroment manually by the following steps. ### Network setup Create a network to connect containers: ```shell docker network create gemma ``` ### Database setup Build `gemma_db` docker image with e.g.: ```shell docker build -t gemma_db -f docker/Dockerfile.db . ``` In order to test the latest upstream PostgreSQL 11 and PostGIS 2.5, use Dockerile.pg instead. Get a running instance with e.g.: ```shell 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 [Row-Level Security](https://www.postgresql.org/docs/11/ddl-rowsecurity.html) (RLS) policies: ```shell docker exec gemma-db ./run_tests.sh ``` ### Create ER diagrams Assuming you have installed `postgresql-autodoc` and [graphviz](http://graphviz.org/) on a machine from which you can reach your docker host, you can use the following: ER diagram with waterway related tables: ```shell 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 `gemma_geoserver` docker image with e.g.: ```shell docker build -t gemma_geoserver -f docker/Dockerfile.geoserv . ``` Get a running instance with e.g.: ```shell 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 `gemma_backend` docker image with e.g.: ```shell docker build -t gemma_backend -f docker/Dockerfile.backend . ``` Get a running instance with e.g.: ```shell 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 `gemma_spa` docker image with e.g.: ```shell docker build -t gemma_spa -f docker/Dockerfile.spa . ``` Get a running instance with e.g.: ```shell docker run --name gemma-spa -v $PWD/client:/opt/gemma/client -d -p 8290:8080 \ --network gemma gemma_spa ``` Now you should be able to use the application in your browser by going to `http://HOSTNAME:8290`, with `HOSTNAME` being the hostname of your docker host.