Comment définir Java heap size (Xms/Xmx) dans Docker container?
au moment de poser cette question, Docker semble être assez nouveau pour ne pas avoir de réponses à cette question sur le net. Le seul endroit que j'ai trouvé est cet article dans lequel l'auteur dit que c'est dur, et c'est tout.
4 réponses
je suis d'accord que cela dépend du contenant que vous utilisez. Si vous utilisez l'officiel Tomcat image, il semble que c'est assez simple, vous aurez besoin de passer le JAVA_OPTS
variable d'environnement avec votre tas de paramètres:
docker run --rm -e JAVA_OPTS='-Xmx1g' tomcat
Notez que dans un docker-compose.yml
fichier - vous aurez besoin de laisser les guillemets:
environment:
- JVM_OPTS=-Xmx12g -Xms12g -XX:MaxPermSize=1024m
ou
environment:
- CATALINA_OPTS=-Xmx12g -Xms12g -XX:MaxPermSize=1024m
Vous pouvez aussi simplement placer ces paramètres dans votre image de sorte que quelque chose comme ce qui suit existerait dans votre fichier Dockerfile:
ENV JAVA_OPTS="-XX:PermSize=1024m -XX:MaxPermSize=512m"
cela dépend comment votre application Java est empaquetée et comment ses fichiers de configuration sont exposés en utilisant Docker.
Par exemple image tomcat officielle états que le fichier de configuration est disponible dans l'emplacement par défaut: /usr/local/tomcat/conf/
Donc facile à remplacer tout le répertoire, ou tout simplement un fichier de configuration:
docker run -it --rm -p 8080:8080 -v $PWD/catalina.properties:/usr/local/tomcat/conf/catalina.properties tomcat:8.0