我想在docker容器中增加wildfly的堆大小。通过在常规wildfly设置中更新wildfly/bin/standalone.conf
可以轻松完成此操作。
我们对wildfly的基础docker图像有一个512 MB
的默认堆大小,需要在其中一个网络应用程序中使用1GB
。一种方法是使用sed
命令在Docker文件中进行简单的文本替换 -
RUN sed -i -- 's/JAVA_OPTS="-Xms64m -Xmx512m -XX:MaxPermSize=256m/JAVA_OPTS="-Xms2048m -Xmx6144m -XX:MaxPermSize=256m/g' /path/standalone.conf
我想知道是否有另一种(更清洁的)方法来解决这个问题?
您可以在用于运行docker容器的命令中传递JAVA_OPTS环境变量的值:
docker run -it --env JAVA_OPTS="-server -Xms2048m -Xmx6144m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true" jboss/wildfly
或者,您可以通过创建包含以下内容的Dockerfile
来扩展标准图像:
FROM jboss/wildfly:latest
COPY standalone.conf $JBOSS_HOME/bin/
并将修改后的standalone.conf放在它旁边的目录中。
然后你可以建立它:
docker build -t my/wildfly:latest .
并运行它:
docker run my/wildfly
使用docker-compose
时设置环境变量如下!
environment:
- JAVA_OPTS=-server -Xms512m -Xmx2048m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -XX:+UseAdaptiveSizePolicy -XX:MaxMetaspaceSize=1024m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true-Djava.net.preferIPv4Stack=true
不要使用"
(报价)!
我建议你使用JAVA_TOOL_OPTIONS而不是JAVA_OPTS。因为JVM直接理解JAVA_TOOL_OPTIONS。