2017-04-10 88 views
0

我正在使用jre8的tomcat的docker鏡像, 我必須更改java環境中的選項,可以在容器運行後對其執行ssh並更改在Dockerfile中更改Java「SecureRandom」

securerandom.source =文件是:/ dev /隨機

securerandom.source =文件是:/ dev/urandom的

根@ 112ecdd0b71f:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security

不過,我想在容器啓動之前自動執行它,因爲當前的設置需要大量的時間來啓動tomcat。

+1

的啓動速度慢可能是由缺乏熵引起的。您可能想要將實際的主機/ dev/random安裝到您的映像中。檢查這個SO回答http://stackoverflow.com/a/26024403/4990550。 –

回答

1

這種變化有兩種選擇。

  1. 創建一個新映像並覆蓋JVM系統屬性。

    您通常會根據您使用的原始設備創建一個新的Dockerfile並在此處進行更改。現有的圖像中

    FROM tomcat:8-jre8 
    ENV CATALINA_OPTS -Dsecurerandom.source=file:/dev/urandom 
    
  2. 設置JVM系統屬性在運行時:你可以使用JAVA_OPTSCATALINA_OPTS等。

    這將使用docker run完成。只需通過-e CATALINA_OPTS="-Dsecurerandom.source=file:/dev/urandom"即可。例如:

    docker run -e CATALINA_OPTS="-Dsecurerandom.source=file:/dev/urandom" tomcat:8-jre8 
    
  3. 創建一個新的圖像並更改文件(不推薦)。

    你也可以創建一個新的圖像,只是做出你最初製作的變化(儘管如此,當他們不需要的時候,我並不喜歡在圖像中更改文件)。

    FROM tomcat:8-jre8 
    RUN sed -i 's/file:\/dev\/random/file:\/dev\/urandom/' /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security