2015-04-28 20 views

Odpowiedz

24

Zgadzam się, że zależy to od tego, z jakiego kontenera korzystasz. Jeśli używasz oficjalnego Tomcat image, wygląda na to, że to dość proste, trzeba będzie przekazać zmienną JAVA_OPTS środowiskową z ustawieniami sterty:

docker run --rm -e JAVA_OPTS='-Xmx1g' tomcat 

Zobacz How to set JVM parameters?

+1

Tak, to lepiej! –

4

Wszystko zależy od tego, w jaki sposób pakowana jest Twoja aplikacja Java i w jaki sposób pliki konfiguracyjne są wyświetlane za pomocą Docker.

Na przykład official tomcat image stwierdza, że ​​plik konfiguracyjny jest dostępny w domyślnej lokalizacji:/usr/local/tomcat/conf/

Tak łatwo zastąpić cały katalog lub tylko jeden plik konfiguracyjny:

docker run -it --rm -p 8080:8080 -v $PWD/catalina.properties:/usr/local/tomcat/conf/catalina.properties tomcat:8.0 
3

Można też po prostu umieścić te ustawienia w obraz tak coś jak poniżej istniałby w Dockerfile:

ENV JAVA_OPTS="-XX:PermSize=1024m -XX:MaxPermSize=512m" 
+0

Jestem prawie pewien, że ustawienie zmiennej środowiskowej JAVA_OPTS będzie działać tylko na oficjalnym obrazie Tomcat. Może nie działać, jeśli stworzyłeś własny obraz Tomcat (np. Używając bazy Ubuntu i instalując Tomcat jako część kompilacji) –

9

Zauważ, że w pliku docker-compose.yml - musisz opuścić podwójnie cytaty:

environment: 
    - JVM_OPTS=-Xmx12g -Xms12g -XX:MaxPermSize=1024m 

lub

environment: 
    - CATALINA_OPTS=-Xmx12g -Xms12g -XX:MaxPermSize=1024m 
Powiązane problemy