我正在尝试使用 docker compose 运行 Elasticsearch,但我不确定如何正确传递 ES_JAVA_OPTS="-Xms512m -Xmx512m"
环境变量。我尝试了很多单引号和双引号的组合,但结果都是:Error: Could not find or load main class "-Xms512m
.
我的 docker-compose 配置是:
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"'
当直接使用以下命令运行容器时,此环境变量可以正常工作:
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 compose 如何解析您的 env 变量的问题。
如果您切换到 yaml map 而不是 list,它应该可以工作:
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
关于elasticsearch - 使用 docker compose 时使用空格传递 ES_JAVA_OPTS 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44926335/