[英]“mount if not exists” clause in docker-compose and ansible
我定義了幾個路徑,可在其中找到字典:
"/data/athena/jenkins_master/home/logs"
"/data/athena/jenkins_master/home/logs/*"
"/data/athena/jenkins_master/home/logs/*/*"
"/data/athena/jenkins_master/home/jobs/*/builds/*"
然后,在docker-compose中,我想掛載所有相對卷,但是由於路徑中有遞歸信息,因此我決定掛載父目錄。
docker-compose.yml
{% for log in in_filebeat_dict.filebeat.logs | default([]) %}
- {{ log.path.split('*')[0] }}:{{ log.path.split('*')[0] }}:ro
{% endfor %}
現在我的問題是,對於所有這些條目,它將嘗試掛載幾次: "/data/athena/jenkins_master/home/logs"
並且將失敗
當我在另一部分(filebeat)中使用它時,我必須將詳細信息保留在字典中。
我想知道如何在docker-compose中包含一個“如果不存在則掛載”子句
我應該如何實現?
您可以在循環之前應用檢查唯一性:
{% for log_path in in_filebeat_dict.filebeat.logs | default([]) | map(attribute='path') | map('regex_search','^([^*]+$|.*?(?=/[*]))') | list | unique %}
- {{ log_path }}:{{ log_path }}:ro
{% endfor %}
正則表達式^([^*]+$|.*?(?=/[*]))
將選擇不帶*
的路徑或帶/*
的路徑的第一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.