如何在Docker容器中设置wildfly的堆大小?

时间:2016-12-19 11:37:40

标签: java docker jvm containers wildfly

我正在尝试增加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

我想知道是否有其他(更清洁)的方法来解决这个问题?

3 个答案:

答案 0 :(得分:3)

您可以在用于运行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

答案 1 :(得分:0)

使用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

请勿使用"(引号)!

答案 2 :(得分:0)

我建议您使用JAVA_TOOL_OPTIONS而不是JAVA_OPTS。因为JVM直接了解JAVA_TOOL_OPTIONS。