2016-09-01 7 views
1

で作業していない私はDockerfileの下に使用して、私のイメージを構築する:JAVA_OPTS/CATALINA_OPTSパラメータはドッキングウィンドウ-compose.yml

FROM java:jre-alpine 
WORKDIR /target 
ADD /target/test.jar test.jar 
RUN sh -c 'touch /test.jar' 
ENTRYPOINT ["java","/target/test.jar"] 

そして、私は指定されている私のドッキングウィンドウ-compose.yml中:

environment: 
    - CATALINA_OPTS=-Xmx256m -Xms128m 

しかし、ドッカーの統計情報を使用してメモリの使用状況をチェックすると、ドッカーのコンテナは256mよりも多くのメモリを消費します。

しかし、私は(下記参照)を直接DockerfileにJVMパラメータを指定すると、ドッキングウィンドウ統計は、正しい番号を示しています。

FROM java:jre-alpine 
WORKDIR /target 
ADD /target/test.jar test.jar 
RUN sh -c 'touch /test.jar' 
ENTRYPOINT ["java","-Xmx512m","/target/test.jar"] 

あなたは私にいくつかのヒントを与えるだろうか? Dockerfileに-Xmxパラメータをハードコードしたくありません。例えば

environment: 
    JAVA_OPTS: "-Ddatabase.url=xxx -Dsolr.url=xxx" 
    CATALINA_OPTS: "-Ddatabase.url=xxx -Dsolr.url=" 

ああ、あなた的環境名のキー部分の先頭にハイフンを必要としない - の代わりに、=は:

+0

を環境変数を渡すためにあなたの構文が正しいです。 'docker-compose run yourservice env'を実行して、環境変数が期待どおりに設定されていることを確認できます。また、Javaイメージが廃止されているため、[openjdk](https://hub.docker.com/_/openjdk/)イメージへのアップグレードをお勧めします。あなたはまだ問題がある場合、私は問題がドッカーではなくJavaであると思います。 – BMitch

答えて

2

私はこのように終わった:私はイメージを構築するとき、私はDockerfに指定

  • ILE:

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

  • そしてドッキングウィンドウ-compose.ymlで、私は指定:

environment: - JAVA_OPTS=-Xmx128m -Xms128m

0

は、私はあなたが使用する必要があり、このに走りました

+0

私のためには機能しません。 – Yashu

+0

どちらの構文でも環境変数を渡すことができます。どちらも有効です。私は制約を渡すための構文のために、 '= 'でリストをデフォルトにしました。 – BMitch

関連する問題