Commit 7f400160dbb74e8f08c3df8569fc76bd1c26fd73

Authored by hitier
1 parent 09bf2de0
Exists in rhitier-dev

Docker compose local:container bindings

Showing 3 changed files with 44 additions and 0 deletions   Show diff stats
@@ -20,6 +20,34 @@ It also gathers NetCDF data from AMDA, and serves it as CSV to the plotter. @@ -20,6 +20,34 @@ It also gathers NetCDF data from AMDA, and serves it as CSV to the plotter.
20 docker compose build 20 docker compose build
21 docker compose up 21 docker compose up
22 22
  23 +## Docker compose configuration
  24 +
  25 +docker stack mainly consists in two files:
  26 +
  27 +- `Dockerfile` for the container building
  28 +- `compose.yaml` for the volumes configuration and links with nginx service and gunicorn
  29 +
  30 +### Volumes configuration and `compose.override.yaml`
  31 +
  32 +You may want to understand where data is stored:
  33 +
  34 +The web application saves `*.csv` files in the `./cache/` directory, which happens to be a docker volume named `helio_cache`
  35 +
  36 +The speasy library holds a cache dir located at `container:/root/.cache/speasy/Cache/` which is also mounted as a volume: `speasy_cache`
  37 +
  38 +Two configuration files are also used:
  39 +
  40 +- `./config.yml` for the web app
  41 +- `${HOME}/.config/speasy/config.ini` for the speasy library
  42 +
  43 +
  44 +You can use the `compose.override.yaml` file to make dynamic links between your local files and the container.
  45 +That way you can live edit the config files, and also use already loaded cache directories.
  46 +
  47 + cp compose.override.yaml-dist compose.override.yaml
  48 + ${EDITOR} compose.override.yaml # make sure its ok, comment what you dont need
  49 + docker compose up -d
  50 +
23 ## Develop 51 ## Develop
24 52
25 ### Configuration 53 ### Configuration
compose.override.yaml-dist 0 → 100644
@@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
  1 +# overriding compose configuration file
  2 +# dynamically links files and directories from host to container
  3 +
  4 +services:
  5 + web:
  6 + volumes:
  7 + # local csv files cache used for the running container
  8 + - ./cache:/cache:rw
  9 + # local site configuration file used for the running container
  10 + - ./config.yml:/config.yml
  11 + # local speasy configuration file used for the running container
  12 + - ${HOME}/.config/speasy/config.ini:/root/.config/speasy/config.ini
  13 + # local speasy cache dir file used for the running container
  14 + - ${HOME}/.cache/speasy/Cache:/root/.cache/speasy/Cache:rw
@@ -8,6 +8,7 @@ services: @@ -8,6 +8,7 @@ services:
8 command: gunicorn --bind 0.0.0.0:5000 heliopropa:application 8 command: gunicorn --bind 0.0.0.0:5000 heliopropa:application
9 volumes: 9 volumes:
10 - helio_cache:/cache:rw 10 - helio_cache:/cache:rw
  11 + - speasy_cache:/root/.cache/speasy/Cache:rw
11 expose: 12 expose:
12 - 5000 13 - 5000
13 nginx: 14 nginx:
@@ -21,3 +22,4 @@ services: @@ -21,3 +22,4 @@ services:
21 22
22 volumes: 23 volumes:
23 helio_cache: 24 helio_cache:
  25 + speasy_cache: