bigbluebutton / docker

Docker files for BigBlueButton
GNU Lesser General Public License v3.0
360 stars 242 forks source link

FIX: JODConverter container fails to start due to "Config data location '/etc/app/' does not exist" error. #178

Closed lightweight closed 2 years ago

lightweight commented 2 years ago

In the past week, I've created several Docker-based BBB 2.3 installations using the process I detail here. The problem I've suddenly encountered (implementations more than about a week old) do not exhibit this issue) is that the JODConverter container consistently fails on start with the following error:

22:14:17.856 [main] DEBUG org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - Application failed to start due to an exception
org.springframework.boot.context.config.ConfigDataLocationNotFoundException: Config data location '/etc/app/' cannot be found
       at org.springframework.boot.context.config.ConfigDataEnvironment.checkMandatoryLocations(ConfigDataEnvironment.java:344)
       at org.springframework.boot.context.config.ConfigDataEnvironment.applyToEnvironment(ConfigDataEnvironment.java:300)
       at org.springframework.boot.context.config.ConfigDataEnvironment.processAndApply(ConfigDataEnvironment.java:224)
       at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:88)
       at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:80)
       at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:100)
       at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:86)
       at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
       at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
       at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
       at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
       at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
       at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63)
       at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
       at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
       at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)
       at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62)
       at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:362)
       at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
       at org.springframework.boot.SpringApplication.run(SpringApplication.java:1309)
       at org.springframework.boot.SpringApplication.run(SpringApplication.java:1298)
       at org.jodconverter.sample.rest.SpringBootRestApplication.main(SpringBootRestApplication.java:46)
       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
       at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
       at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
       at org.springframework.boot.loader.Launcher.launch(Launcher.java:51)
       at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:58)
22:14:17.861 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - 

***************************
APPLICATION FAILED TO START
***************************

Description:

Config data location '/etc/app/' does not exist

Action:

Check that the value '/etc/app/' is correct, or prefix it with 'optional:'

I have managed to fix it by altering the following file mod/jodconverter/Dockerfile adding the following line at the end:

CMD ["--spring.config.additional-location=optional:/etc/app/"]

to add the "optional:" prefix to the additional-location directory. After an ./scripts/upgrade, the jodconverter container is rebuilt and runs fine.

It appears that the upstream jodconverter developer (or even his upstream) has upgraded versions in the past 8 days or so, which has led to the problem.

Hope this helps someone.