Q: Ktor needs 1 hour(forever) to boot up I have a ktor app. I works fine when I run it in development mode. I package it in a docker image by copying over what the gradle application plugin provided. That also works fine on my local machine 8 cores. But now the strange part. When I do exactly the same thing on a rented V-Server also running Ubuntu-20.04 like my local system, ktor is incredible slow.
docker-compose logs server:
server           | 2021-08-24 08:00:23.337 [main] INFO  ktor.application - Autoreload is disabled because the development mode is off.
server           | 2021-08-24 08:25:35.048 [main] INFO  ktor.application - Autoreload is disabled because the development mode is off.
server           | 2021-08-24 09:18:48.246 [main] INFO  c.e.e.s.TemplateStore - Starting to parse Sentences
server           | 2021-08-24 09:18:48.345 [main] INFO  c.e.e.s.TemplateStore - Finished parsing sentences
server           | 2021-08-24 09:18:48.346 [main] INFO  ktor.application - Responding at http://0.0.0.0:8080
server           | 2021-08-24 09:18:48.347 [main] INFO  ktor.application - Application started in 3193.32 seconds.

 Application started in 3193.32 seconds

The source code can be found here https://github.com/1-alex98/whatisthat . It has a docker-compose.yml defining the whole docker container being started.
Local system 32 gb ram + 8 cores . V-Server 4 gb Ram + 2 cores (htop shows pleinty of resources are free).
I am looking for ideas on what in the world could cause this behavior. Or ways to debug it.
Update:
Seems to read a file forever:
"main" #1 prio=5 os_prio=0 cpu=652.14ms elapsed=173.92s tid=0x00007f01d4016000 nid=0xe runnable  [0x00007f01dace6000]
   java.lang.Thread.State: RUNNABLE
    at java.io.FileInputStream.readBytes(java.base@11.0.12/Native Method)
    at java.io.FileInputStream.read(java.base@11.0.12/FileInputStream.java:279)
    at java.io.FilterInputStream.read(java.base@11.0.12/FilterInputStream.java:133)
    at sun.security.provider.NativePRNG$RandomIO.readFully(java.base@11.0.12/NativePRNG.java:424)
    at sun.security.provider.NativePRNG$RandomIO.ensureBufferValid(java.base@11.0.12/NativePRNG.java:526)
    at sun.security.provider.NativePRNG$RandomIO.implNextBytes(java.base@11.0.12/NativePRNG.java:545)
    - locked <0x00000000c7571158> (a java.lang.Object)
    at sun.security.provider.NativePRNG$Blocking.engineNextBytes(java.base@11.0.12/NativePRNG.java:268)
    at java.security.SecureRandom.nextBytes(java.base@11.0.12/SecureRandom.java:751)
    at kotlin.random.AbstractPlatformRandom.nextBytes(PlatformRandom.kt:47)
    at kotlin.random.Random.nextBytes(Random.kt:260)
    at com.example.routes.websocket.WebsocketRoutingKt.<clinit>(WebsocketRouting.kt:40)
    at com.example.plugins.RoutingKt$routing$1.invoke(Routing.kt:13)
    at com.example.plugins.RoutingKt$routing$1.invoke(Routing.kt:11)
    at io.ktor.routing.Routing$Feature.install(Routing.kt:106)
    at io.ktor.routing.Routing$Feature.install(Routing.kt:88)
    at io.ktor.application.ApplicationFeatureKt.install(ApplicationFeature.kt:68)
    at io.ktor.routing.RoutingKt.routing(Routing.kt:129)
    at com.example.plugins.RoutingKt.routing(Routing.kt:11)
    at com.example.ApplicationKt$main$1.invoke(Application.kt:18)
    at com.example.ApplicationKt$main$1.invoke(Application.kt:14)
    at io.ktor.server.engine.internal.CallableUtilsKt.executeModuleFunction(CallableUtils.kt:50)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$launchModuleByName$1.invoke(ApplicationEngineEnvironmentReloading.kt:317)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$launchModuleByName$1.invoke(ApplicationEngineEnvironmentReloading.kt:316)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.avoidingDoubleStartupFor(ApplicationEngineEnvironmentReloading.kt:341)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.launchModuleByName(ApplicationEngineEnvironmentReloading.kt:316)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.access$launchModuleByName(ApplicationEngineEnvironmentReloading.kt:30)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$instantiateAndConfigureApplication$1.invoke(ApplicationEngineEnvironmentReloading.kt:304)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$instantiateAndConfigureApplication$1.invoke(ApplicationEngineEnvironmentReloading.kt:295)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.avoidingDoubleStartup(ApplicationEngineEnvironmentReloading.kt:323)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.instantiateAndConfigureApplication(ApplicationEngineEnvironmentReloading.kt:295)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.createApplication(ApplicationEngineEnvironmentReloading.kt:136)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.start(ApplicationEngineEnvironmentReloading.kt:268)
    at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:174)
    at com.example.ApplicationKt.main(Application.kt:21)
    at com.example.ApplicationKt.main(Application.kt)


It is a fresh rented server but I guess something is wrong with it

A: docker-compose being slow and my program not starting seemed to be due to insufficient(not good enough) input to /dev/urandom. Installing https://github.com/smuellerDD/jitterentropy-rngd resolved the problem.
