docker 的弹性搜索无法启动

Elastic search with docker does not start

我正在 angular 应用程序中从弹性搜索中检索详细信息。当我在我的本地机器上安装弹性搜索时,它起作用了。我必须将以下行附加到 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文件

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

第一个:

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

应该是

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

因为 YAML 表示法需要在 : 和键值对的值之间进行白色 space 分隔。

其次,您提供的错误跟踪表明 http.cors.allow-origin: "/.*/" 前面有前导白色 space,这与按照正确的 YAML 符号的块不一致。 http.cors.allow-origin: "/.*/" 更有可能需要没有前导白色 space(如果存在的话)(因为我认为 http 通常是 Elasticsearch 配置文件中的顶级块)。