FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
以上Dockerfile
示例来自官方Spring Boot guide对于 docker 。我想知道安全属性的用途,因为在本地开发环境中运行应用程序时我通常不会设置该属性,但它似乎出现在各种容器化指南中。干杯!
最佳答案
该安全属性的目的是加快 tomcat 的启动速度。默认情况下,用于在 Unix 系统上的 JVM 中生成随机数的库依赖于 /dev/random
。在 Docker 容器上,没有足够的熵来支持 /dev/random
。请参阅Not enough entropy to support /dev/random
in docker containers running in boot2docker 。
随机数生成器用于生成 session ID。将其更改为 /dev/urandom
将使启动过程更快。
关于spring - 容器化 Spring Boot 应用程序时 "-Djava.security.egd=file:/dev/./urandom"到底做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58853372/