![](/img/trans.png)
[英]How to use an environment variable from a docker-compose.yml in a Dockerfile?
[英]How to pass multiline environment variable in docker-compose.yml
我正在嘗試轉換此docker run 命令:
docker run -it --rm --name logstash --net test opensearchproject/logstash-oss-with-opensearch-output-plugin:7.16.2 -e 'input { stdin { } } output {
opensearch {
hosts => ["https://opensearch:9200"]
index => "opensearch-logstash-docker-%{+YYYY.MM.dd}"
user => "admin"
password => "admin"
ssl => true
ssl_certificate_verification => false
}
}'
到 docker-compose.yml 文件。 但是我不知道如何定義上面傳遞的環境配置。 關於如何將無名多行環境變量傳遞給 docker-compose 的任何建議?
我嘗試了多種 yaml 多行格式,但我不斷得到:
錯誤:環境變量名稱 'input { stdin { } } output { opensearch { hosts ' 可能不包含空格。
碼頭工人-compose.yml:
version: '3'
services:
logstash-producer:
image: opensearchproject/logstash-oss-with-opensearch-output-plugin:7.16.2
container_name: logstash-producer
environment:
- 'input { stdin { } } output {
opensearch {
hosts => ["https://opensearch:9200"]
index => "opensearch-logstash-docker-%{+YYYY.MM.dd}"
user => "admin"
password => "admin"
ssl => true
ssl_certificate_verification => false
}
}'
由於-e
位在映像名稱之后,因此它是容器的命令。
我從來沒有這樣做過,我無法測試它,但試試這個
version: '3'
services:
logstash-producer:
image: opensearchproject/logstash-oss-with-opensearch-output-plugin:7.16.2
container_name: logstash-producer
command: |
-e 'input { stdin { } } output {
opensearch {
hosts => ["https://opensearch:9200"]
index => "opensearch-logstash-docker-%{+YYYY.MM.dd}"
user => "admin"
password => "admin"
ssl => true
ssl_certificate_verification => false
}
}'
如果這不起作用,我會嘗試將命令全部放在一行上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.