elasticsearch - 使用 docker compose 时使用空格传递 ES_JAVA_OPTS 变量

标签 elasticsearch docker environment-variables docker-compose

我正在尝试使用 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/

相关文章:

wordpress - 如何在 Docker 容器中从 WordPress(联系表格)发送电子邮件?

windows - 如何在 Windows git bash shell 中访问此环境变量

c# - ElasticSearch 版本 2.x 中的扫描和滚动替代 (NEST C#)

elasticsearch - Elasticsearch 分析器和 Facet

elasticsearch - 查询字符串搜索不起作用

docker - Docker-SpringConfig-连接被拒绝到ConfigServer

django - Elasticsearch :未知命令: 'search_index'

django - 如何使用 Docker 迁移 Django

JBoss EAP 6 环境变量 : standalone vs. 域

php - 运行命令行脚本时设置 PHP 环境变量