在使用docker撰写时将ES_JAVA_OPTSvariables与空格一起传递

我试图运行使用docker撰写Elasticsearch,但我不知道如何正确地通过ES_JAVA_OPTS="-Xms512m -Xmx512m"环境variables。 我已经尝试了很多单引号和双引号的组合,但它们都导致: Error: Could not find or load main class "-Xms512m

我的docker组成configuration是:

 elasticsearch: image: "docker.elastic.co/elasticsearch/elasticsearch:5.4.3" ports: - "6379:6379" environment: - "http.host=0.0.0.0" - "transport.host=127.0.0.1" - "xpack.security.enabled=false" - 'ES_JAVA_OPTS="-Xms512m -Xmx512m"' 

这个环境variables在直接运行容器时工作得很好:

 docker run --detach \ --name elasticsearch \ --publish 9200:9200 \ --env "http.host=0.0.0.0" \ --env "transport.host=127.0.0.1" \ --env "xpack.security.enabled=false" \ --env "ES_JAVA_OPTS=""-Xms512m -Xmx512m""" \ docker.elastic.co/elasticsearch/elasticsearch:5.4.3 

我在这里错过了什么?

根据https://github.com/docker/compose/issues/2854这是一个问题,如何docker撰写将parsing你的envvariables

如果你切换到yaml而不是列表,它应该工作:

 elasticsearch: image: "docker.elastic.co/elasticsearch/elasticsearch:5.4.3" ports: - "6379:6379" environment: http.host: 0.0.0.0 transport.host: 127.0.0.1 xpack.security.enabled: "false" ES_JAVA_OPTS: -Xms512m -Xmx512m