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

我正在尝试增加Docker容器中的wildfly的堆大小。 这很容易通过更新wildfly/bin/standalone.conf在常规的野蛮设置中完成。

我们的wildfly的基础docker镜像的默认堆积大小为512 MB ,其中一个web应用需要1GB 。 一种方法是通过使用sed命令在Docker文件中replace简单的文本 –

 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环境variables的值:

 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 

或者,您可以通过创build包含以下内容的Dockerfile来扩展标准映像:

 FROM jboss/wildfly:latest COPY standalone.conf $JBOSS_HOME/bin/ 

并将修改后的standalone.conf放在它旁边的目录中。

那么你可以build立它:

 docker build -t my/wildfly:latest . 

并运行它:

 docker run my/wildfly