使用docker的弹性搜索无法启动

时间:2015-02-18 12:12:15

标签: angularjs elasticsearch cors docker

我正在使用角度应用程序中的弹性搜索检索细节。当我在我的本地机器上安装弹性搜索时工作。我必须将以下行附加到elasticsearch.yml文件以使其与angularApp一起使用。

http.cors.allow-origin: "/.*/"
http.cors.enabled: true

现在弹性搜索服务器安装了一个docker。当我在没有添加这两行的情况下运行时它也起作用。但是当我添加并重新启动弹性搜索时, 它给了我以下错误。

{1.4.2}: Setup Failed ...
- SettingsException[Failed to load settings from [file:/elasticsearch/config/elasticsearch.yml]]
        ScannerException[while scanning a simple key; could not found expected ':';  in 'reader', line 7, column 3:
      http.cors.enabled: true
      ^]
org.elasticsearch.common.settings.SettingsException: Failed to load settings from [file:/elasticsearch/config/elasticsearch.yml]
        at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromStream(ImmutableSettings.java:947)
        at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromUrl(ImmutableSettings.java:931)
        at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:77)
        at org.elasticsearch.bootstrap.Bootstrap.initialSettings(Bootstrap.java:106)
        at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:177)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
Caused by: while scanning a simple key
 in 'reader', line 6, column 3:
      http.cors.allow-origin:"/.*/"
  ^

这是服务器上的Elasticsearch.yml文件

enter image description here

1 个答案:

答案 0 :(得分:4)

至少有两个可能的问题,这些问题并不相互排斥:

首先:

http.cors.allow-origin:"/.*/"

应该是

http.cors.allow-origin: "/.*/"

因为YAML表示法需要:与键值对值之间的空格分隔。

其次,您提供的错误跟踪表明http.cors.allow-origin: "/.*/"前面的前导空格与每个正确的YAML表示法的块不一致。如果存在http.cors.allow-origin: "/.*/",则http更有可能缺少前导空格(因为我认为{{1}}通常是Elasticsearch配置文件中的顶级块)。