JAVA_OPTS / CATALINA_OPTS参数不适用于docker-compose.yml

Yas*_*shu 3 docker docker-compose

我使用以下Dockerfile构建映像:

FROM java:jre-alpine
WORKDIR /target
ADD /target/test.jar test.jar
RUN sh -c 'touch /test.jar'
ENTRYPOINT ["java","/target/test.jar"]
Run Code Online (Sandbox Code Playgroud)

在我的docker-compose.yml中,我指定了:

environment:
    - CATALINA_OPTS=-Xmx256m -Xms128m
Run Code Online (Sandbox Code Playgroud)

但是,当我使用docker stats检查内存使用情况时,我的docker容器消耗的内存比256m多得多。

但是如果我直接在Dockerfile中指定JVM参数(请参阅下文),那么docker stats会显示正确的数字:

FROM java:jre-alpine
WORKDIR /target
ADD /target/test.jar test.jar
RUN sh -c 'touch /test.jar'
ENTRYPOINT ["java","-Xmx512m","/target/test.jar"]
Run Code Online (Sandbox Code Playgroud)

你能给我一些提示吗?我不想在Dockerfile中对-Xmx参数进行硬编码。

Yas*_*shu 7

我最终像这样:

  • 构建映像时,我在Dockerfile中指定:

    ENTRYPOINT exec java $JAVA_OPTS -jar /target/test.jar

  • 然后在docker-compose.yml中,指定:

environment: - JAVA_OPTS=-Xmx128m -Xms128m