![](/img/trans.png)
[英]Docker: How to use a Dockerfile in addition to docker-compose.yml
[英]How to use command in docker-compose.yml
這是我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
看起來我不能使用 sign :
in command
,是真的嗎? 另一個問題是如果我想運行多個命令,在 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"
-/bin/bash -c “echo 'http.cors.allow-origin: "*"' > /usr/share/elasticsearch/config/elasticsearch.yml"
冒號是 YAML 引入字典的方式。 如果你有一個值,你只需要引用這個值,例如這樣:
image: "elasticsearch:2.4"
或者使用塊標量運算符之一,如下所示:
command: >
/bin/bash -c “echo 'http.cors.enabled: true' > /usr/share/elasticsearch/config/elasticsearch.yml"
有關更多信息,請查看 Wikipedia 上的YAML頁面。 你總是可以使用類似這樣的在線 YAML 解析器來測試你的 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 容器只能運行一個command
。 如果您想運行多個命令,請將它們放在一個 shell 腳本中並將其復制到映像中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.