gpt4 book ai didi

docker - 如何在 docker-compose.yml 中的命令中使用 `echo` 来处理冒号 (":") 符号?

转载 作者:行者123 更新时间:2023-12-02 18:49:33 24 4
gpt4 key购买 nike

这是我的docker-compose.yml

elasticsearch:
ports:
- 9200:9200/tcp
image: elasticsearch:2.4
volumes:
- /data/elasticsearch/usr/share/elasticsearch/data:/usr/share/elasticsearch/data
command: /bin/bash -c “echo 'http.cors.enabled: true' > /usr/share/elasticsearch/config/elasticsearch.yml"

它抛出错误:

Activating (yaml: [] mapping values are not allowed in this context at line 7, column 49

看起来好像我不能在 command 中使用冒号 :,这是真的吗?

最佳答案

冒号是 YAML 引入字典的方式。如果你在一个值中有它,你只需要引用这个值,例如像这样:

image: "elasticsearch:2.4"

或者使用 block 标量运算符之一,如下所示:

command: >
/bin/bash -c “echo 'http.cors.enabled: true' > /usr/share/elasticsearch/config/elasticsearch.yml"

有关更多信息,请查看 YAML维基百科上的页面。你总是可以使用类似 this online YAML parser 的东西测试您的 YAML 语法。

如果格式正确,您的第一个文档应该类似于:

elasticsearch:
ports:
- 9200:9200/tcp
image: "elasticsearch:2.4"
volumes:
- /data/elasticsearch/usr/share/elasticsearch/data:/usr/share/elasticsearch/data
command: >
/bin/bash -c “echo 'http.cors.enabled: true' > /usr/share/elasticsearch/config/elasticsearch.yml"

(列表标记 (-) 从键缩进不是绝对必要的,但我发现它有助于使事情更容易阅读)

一个 docker 容器只能运行一个命令。如果要运行多个命令,请将它们放在 shell 脚本中并将其复制到图像中。

关于docker - 如何在 docker-compose.yml 中的命令中使用 `echo` 来处理冒号 (":") 符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40210067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com