この質問を提起する時点で、Dockerはネット上でこの質問に対する答えを持たないほど十分に新しいように見えます。私が見つけた唯一の場所は この記事 で、著者はそれが難しいと言っていますが、それだけです。
使用しているコンテナに依存することに同意します。公式の Tomcat image を使用している場合、それは十分単純であるように見えるので、ヒープ設定でJava_OPTS
環境変数を渡す必要があります。
docker run --rm -e Java_OPTS='-Xmx1g' Tomcat
JVMパラメーターの設定方法 を参照してください
docker-compose.yml
ファイル-二重引用符を省略する必要があります。
environment:
- JVM_OPTS=-Xmx12g -Xms12g -XX:MaxPermSize=1024m
または
environment:
- CATALINA_OPTS=-Xmx12g -Xms12g -XX:MaxPermSize=1024m
また、これらの設定を画像に配置して、Dockerfileに次のようなものが存在するようにすることもできます。
ENV Java_OPTS="-XX:PermSize=1024m -XX:MaxPermSize=512m"
それはすべて、Javaアプリケーションがどのようにパッケージ化されているか、その構成ファイルがDockerを使用してどのように公開されているかによって異なります。
たとえば、 公式Tomcatイメージ は、構成ファイルがデフォルトの場所/ usr/local/Tomcat/conf /で使用可能であることを示しています
ディレクトリ全体または1つの構成ファイルを簡単に上書きできます。
docker run -it --rm -p 8080:8080 -v $PWD/catalina.properties:/usr/local/Tomcat/conf/catalina.properties Tomcat:8.0