1) EXPOSE 3000 in Dockerfile + set loadbalancer port to 3000 in docker-compose.yml
2) Add reference to a manually installation of osm2pgsql
3) Add -W to osm2pgsql, which asks for the postgres password
4) Added the manual creation of the docker network `gateway`
5) Changed deployment order: build portal -> prepeare database -> import Osm -> run the container
6) Add localhost binding of postgres to docker-compose.yml (optional)
(1) Custom names in docker networks require compose file format to be at least 3.5
"Networks can also be given a custom name (since version 3.5)"
@see: https://docs.docker.com/compose/networking/#specify-custom-networks
(2) Add `traefik.enable=false` to the postgres
Thus, traefik never tries to handle the container.
(3) Bump traefik to 2.5.5
(4) Fix label of the portal
Use prefix `traefik.http.services.portal`
when directly voluming in the json and it does not exist, docker automatically creates a directory to mount which traefik chokes on trying to access it as a file. create a sensible mount dir but configure traefik to make a file in that directory (next commit)