Problems with local installation of ORS

Hello everyone,

I’ve tried to run the ORS software as a docker. I cloned the master branch from git and followed instructions on the webpage. Unfortunately, when I tried to run the “docker compose up” after the start, no new files were created inside the folders—conf, elevation_cahche, graphs, and logs.
Is it possible that something is not up to date?
If needed, I can provide any additional info that might help locate the problem.

It seems like the problem is with mounted folders.
In docker-compose.yml the local folders are mounted to /home/ors/ folders, and it seems they are not entirely correctly connected. The files in ors-core and ors-conf seem to be unaffected by what is my ors-config.json

Hi,

I had this exact problem.

I stripped out the user folders from the volume definitions to make it work:

container_name: ors-app
image: openrouteservice/openrouteservice:latest
user: "${UID:-0}:${GID:-0}"
volumes:
  - ors-graphs:/ors-core/data/graphs
  - ors-elevation-cache:/ors-core/data/elevation_cache
  - ors-conf:/ors-conf
  - ./osm_file.pbf:/ors-core/data/osm_file.pbf
1 Like

Hi @Viacheslav96,

this might have to do with this recent change for introducing the multistage build.

I created an issue for this. Feel free to provide further info that might help locating the problem.

Best regards

1 Like

@Viacheslav96 @Andres_Mansini,

this should be fixed now with the latest docker hub image.

Best regards

1 Like

@amandus I checked the installation today.
It builds now correctly, but it’s still an incorrect folder path in the default docker_compose.yml.

The generated graphs are stored in the /ors_core/graphs instead of /ors_code/data/graphs.
I cannot see where the elevation_cache is stored, but it is not stored in the /ors_core/data/ekevation_cache nor /home/ors/ors_core/data/elevation_cache.

I can provide you with my docker_compose.yml or ors-config.json file if necessary.

version: '2.4'
services:
  ors-app:
    container_name: ors-app
    ports:
      - "8080:8080"
      - "9001:9001"
    image: openrouteservice/openrouteservice:latest
    user: "${UID:-0}:${GID:-0}"
    # build:
    #   context: ../
    #   args:
    #     ORS_CONFIG: ./docker/conf/ors-config.json
    #     OSM_FILE: ./openrouteservice/src/main/files/heidelberg.osm.gz
    volumes:
      - ./graphs:/ors-core/data/graphs
      - ./elevation_cache:/ors-core/data/elevation_cache
      - ./logs/ors:/var/log/ors
      - ./logs/tomcat:/usr/local/tomcat/logs
      - ./conf:/ors-conf
      - ./backup/graphs:/ors-core/graphs
      - ./backup/elevation_cache:/home/ors/ors-core/data/elevation_cache
      - ./backup/logs/ors:/home/ors/ors-core/logs/ors
      - ./backup/logs/tomcat:/home/ors/tomcat/logs
      - ./backup/conf:/home/ors/ors-conf
      - ./data/germany-latest.osm.pbf:/ors-core/data/osm_file.pbf
    environment:
      - BUILD_GRAPHS=True  # Forces the container to rebuild the graphs, e.g. when PBF is changed
      - "JAVA_OPTS=-Djava.awt.headless=true -server -XX:TargetSurvivorRatio=75 -XX:SurvivorRatio=64 -XX:MaxTenuringThreshold=3 -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:ParallelGCThreads=10 -Xms8g -Xmx8g"
      - "CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.rmi.port=9001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost"

After a few tries, I found out, that /graph folder is created in the non-volume folders. After trying to bind the /ors-core/graph folder to my local drive, the graph folder was created in the /home/ors/graph.
I use the whole map of Germany, so each time it takes quite some time to process it. Am I doing something wrong?

I’m running into this same issue. for testing purposes, i’m using the base installation from the git repo. none of the volumes are using the directories specified in the docker-compose.yml file. They are all being auto-mapped to volumes in /var/lib/docker/volumes. the default germany location is working fine, but it’s not reading my maps because of this issue.

EDIT:

i’m making progress… I had to pull the latest image with:

docker pull openrouteservice/openrouteservice

now my log is writing to the local directory again. I will update again later when and if I have it all working again