I am upgrading to the latest version of ORS-Docker and tyring to use the yml config file instead of a json.
This is my docker-compose -
version: '2.4'
services:
ors:
container_name: ors
ports:
- "8007:8080"
- "9007:9001"
image: ors-cors:latest
# For versioned images see https://giscience.github.io/openrouteservice/installation/Running-with-Docker.html
user: "${UID:-0}:${GID:-0}"
# build:
# context: .
# args:
# OSM_FILE: ./ors-api/src/test/files/bayern-latest.osm.pbf
volumes:
- ./docker/graphs:/home/ors/ors-core/data/graphs
- ./docker/elevation_cache:/home/ors/ors-core/data/elevation_cache
- ./docker/logs/ors:/home/ors/logs
- ./docker/logs/tomcat:/home/ors/tomcat/logs
- ./docker/conf:/home/ors/ors-conf
- ./docker/data:/home/ors/ors-core/data
restart: on-failure
environment:
- BUILD_GRAPHS=False # 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=4 -Xms1g -Xmx3g"
- "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"
- ORS_CONFIG=/home/ors/ors-conf/ors-config.json
labels:
- "traefik.http.middlewares.add-ors-prefix.addprefix.prefix=/ors"
- "traefik.http.routers.ors.rule=PathPrefix(`/ors`)"
- "traefik.http.routers.ors.tls.certresolver=letsencrypt"
- "traefik.enable=true"
- "traefik.frontend.headers.allowedHosts=spatial.kfmplus.de,dah.kfmplus.de,kfmplus.gunzenhausen.de"
networks:
- services
networks:
services:
external: true
When I try to mount ors-config.yml instead of ors-config.json, I get this error while booting -
ttaching to ors
ors | Running container as user root with id 0
ors | ORS Path: /home/ors
ors | Catalina Path: /home/ors/tomcat
ors | ### openrouteservice configuration ###
ors |
ors | . ____ _ __ _ _
ors | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
ors | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
ors | \\/ ___)| |_)| | | | | || (_| | ) ) ) )
ors | ' |____| .__|_| |_|_| |_\__, | / / / /
ors | =========|_|==============|___/=/_/_/_/
ors | :: Spring Boot :: (v3.1.1)
ors |
ors | 20 Nov 11:09:40 INFO main [ o.h.o.a.Application ] Starting Application v8.0-SNAPSHOT using Java 17.0.7 with PID 1 (/home/ors/tomcat/webapps/ors/WEB-INF/classes started by root in /home/ors)
ors | 20 Nov 11:09:40 INFO main [ o.h.o.a.Application ] The following 1 profile is active: "default"
ors | 20 Nov 11:09:42 WARN main [ ConfigServletWebServerApplicationContext ] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'openAPIConfig' defined in file [/home/ors/tomcat/webapps/ors/WEB-INF/classes/org/heigit/ors/api/OpenAPIConfig.class]: Failed to instantiate [org.heigit.ors.api.OpenAPIConfig$$SpringCGLIB$$0]: Constructor threw exception
ors | 20 Nov 11:09:43 ERROR main [ o.s.b.SpringApplication ] Application run failed
ors | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'openAPIConfig' defined in file [/home/ors/tomcat/webapps/ors/WEB-INF/classes/org/heigit/ors/api/OpenAPIConfig.class]: Failed to instantiate [org.heigit.ors.api.OpenAPIConfig$$SpringCGLIB$$0]: Constructor threw exception
ors | at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:326) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:314) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:941) ~[spring-context-6.0.10.jar:6.0.10]
ors | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608) ~[spring-context-6.0.10.jar:6.0.10]
ors | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.1.1.jar:3.1.1]
ors | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) [spring-boot-3.1.1.jar:3.1.1]
ors | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:436) [spring-boot-3.1.1.jar:3.1.1]
ors | at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) [spring-boot-3.1.1.jar:3.1.1]
ors | at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:174) [spring-boot-3.1.1.jar:3.1.1]
ors | at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:154) [spring-boot-3.1.1.jar:3.1.1]
ors | at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:96) [spring-boot-3.1.1.jar:3.1.1]
ors | at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:171) [spring-web-6.0.10.jar:6.0.10]
ors | at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4886) [catalina.jar:10.1.11]
ors | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:713) [catalina.jar:10.1.11]
ors | at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:975) [catalina.jar:10.1.11]
ors | at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1949) [catalina.jar:10.1.11]
ors | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
ors | at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
ors | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:10.1.11]
ors | at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) [?:?]
ors | at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:776) [catalina.jar:10.1.11]
ors | at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426) [catalina.jar:10.1.11]
ors | at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1656) [catalina.jar:10.1.11]
ors | at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) [catalina.jar:10.1.11]
ors | at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:10.1.11]
ors | at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:10.1.11]
ors | at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846) [catalina.jar:10.1.11]
ors | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318) [catalina.jar:10.1.11]
ors | at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
ors | at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:10.1.11]
ors | at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) [?:?]
ors | at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:241) [catalina.jar:10.1.11]
ors | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428) [catalina.jar:10.1.11]
ors | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:10.1.11]
ors | at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:918) [catalina.jar:10.1.11]
ors | at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:10.1.11]
ors | at org.apache.catalina.startup.Catalina.start(Catalina.java:795) [catalina.jar:10.1.11]
ors | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
ors | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
ors | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
ors | at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
ors | at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347) [bootstrap.jar:10.1.11]
ors | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478) [bootstrap.jar:10.1.11]
ors | Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.heigit.ors.api.OpenAPIConfig$$SpringCGLIB$$0]: Constructor threw exception
ors | at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:224) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:110) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:323) ~[spring-beans-6.0.10.jar:6.0.10]
ors | ... 60 more
ors | Caused by: java.lang.ExceptionInInitializerError
ors | at org.heigit.ors.api.OpenAPIConfig.<init>(OpenAPIConfig.java:49) ~[classes/:8.0-SNAPSHOT]
ors | at org.heigit.ors.api.OpenAPIConfig$$SpringCGLIB$$0.<init>(<generated>) ~[classes/:8.0-SNAPSHOT]
ors | at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
ors | at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
ors | at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
ors | at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
ors | at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
ors | at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:110) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:323) ~[spring-beans-6.0.10.jar:6.0.10]
ors | ... 60 more
ors | Caused by: com.typesafe.config.ConfigException$Parse: /home/ors/ors-conf/ors-config.yml: 2: Key '---' may not be followed by token: 'ors' (if you intended 'ors' to be part of a key or string value, try enclosing the key or value in double quotes)
ors | at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:201) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:197) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseObject(ConfigDocumentParser.java:461) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parse(ConfigDocumentParser.java:648) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.impl.ConfigDocumentParser.parse(ConfigDocumentParser.java:14) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:262) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:250) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:180) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:174) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.impl.Parseable.parse(Parseable.java:301) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.ConfigFactory.parseFile(ConfigFactory.java:792) ~[config-1.4.1.jar:1.4.1]
ors | at com.typesafe.config.ConfigFactory.parseFile(ConfigFactory.java:806) ~[config-1.4.1.jar:1.4.1]
ors | at org.heigit.ors.config.AppConfig.<init>(AppConfig.java:99) ~[ors-engine-8.0-SNAPSHOT.jar:8.0-SNAPSHOT]
ors | at org.heigit.ors.config.AppConfig.getGlobal(AppConfig.java:124) ~[ors-engine-8.0-SNAPSHOT.jar:8.0-SNAPSHOT]
ors | at org.heigit.ors.api.util.AppConfigMigration.<clinit>(AppConfigMigration.java:29) ~[classes/:8.0-SNAPSHOT]
ors | at org.heigit.ors.api.OpenAPIConfig.<init>(OpenAPIConfig.java:49) ~[classes/:8.0-SNAPSHOT]
ors | at org.heigit.ors.api.OpenAPIConfig$$SpringCGLIB$$0.<init>(<generated>) ~[classes/:8.0-SNAPSHOT]
ors | at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
ors | at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
ors | at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
ors | at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
ors | at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
ors | at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:110) ~[spring-beans-6.0.10.jar:6.0.10]
ors | at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:323) ~[spring-beans-6.0.10.jar:6.0.10]
ors | ... 60 more
This is my ors-config.yml -
---
ors:
cors:
allowed_origins: "*"
allowed_headers: Content-Type, X-Requested-With, accept, Origin,
Access-Control-Request-Method, Access-Control-Request-Headers,
Authorization
preflight_max_age: 600
engine:
source_file: ./ors-core/data/osm_file.pbf
graphs_root_path: ./ors-core/data/graphs
elevation:
cache_path: ./ors-core/data/elevation_cache
profiles:
car:
profile: driving-car
elevation: true
encoder_options:
turn_costs: true
block_fords: false
use_acceleration: true
preparation:
min_network_size: 200
min_one_way_network_size: 200
methods:
ch:
enabled: true
threads: 1
weightings: fastest
lm:
enabled: false
threads: 1
weightings: fastest,shortest
landmarks: 16
core:
enabled: true
threads: 1
weightings: fastest,shortest
landmarks: 64
lmsets: highways;allow_all
execution:
methods:
ch:
disabling_allowed: true
lm:
disabling_allowed: true
active_landmarks: 6
core:
disabling_allowed: true
active_landmarks: 6
ext_storages:
WayCategory: null
HeavyVehicle: null
WaySurfaceType: null
RoadAccessRestrictions:
use_for_warnings: true
walking:
profile: foot-walking
encoder_options: null
block_fords: false
elevation: true
ext_storages:
WayCategory: null
WaySurfaceType: null
HillIndex: null
TrailDifficulty: null
Is my YAML config file missing something or is wrong?
Also, no matter what, only 1 profile is active - “default”. This I guess is replaced when the config file takes effect?