2017-02-17 12 views
39

documentation के अनुसार, ध्वज --build-arg के लिए कई तर्क परिभाषित करना संभव है, लेकिन मुझे यह पता नहीं चल सकता कि कैसे। मैंने निम्नलिखित कोशिश की:डॉकर कई तर्कों के साथ -बिल्ड-एर्ग के साथ निर्मित

docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 number_of_replicas=2 --no-cache . 

=> यह एक त्रुटि देता है।

मैं भी करने की कोशिश की:

docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5,number_of_replicas=2 --no-cache . 

=> यह मान "5, number_of_replicas = 2"

किसी भी विचार कैसे मैं कई तर्क को परिभाषित कर सकते करने के लिए एक चर, number_of_shards, सेट करता है?

उत्तर

77

प्रत्येक तर्क के साथ --build-arg का उपयोग करें।

आप दो तर्क गुजर रहे हैं तो जैसे हर तर्क के साथ --build-arg जोड़ें:

docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 --build-arg number_of_replicas=2 --no-cache . 
+0

लंगड़ा लेकिन सच! –

+3

इसे साफ़ करने के लिए धन्यवाद। इस पर '--help' विशेष रूप से भ्रामक है: '--build-arg list'। यह एक सूची नहीं है! – cowlinator

15

pl_rock से ऊपर जवाब सही है, केवल एक चीज मैं जोड़ना होगा Dockerfile अंदर ARG की उम्मीद आप नहीं करता है, तो है इसका उपयोग नहीं होगा। तो अगर आप Dockerfile अंदर

docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 --build-arg number_of_replicas=2 --no-cache . 

कर रहे हैं तो फिर आप जोड़ना चाहिए

ARG number_of_replicas 
ARG number_of_shards 

मैं इस समस्या में चल रहा था, इसलिए मुझे आशा है कि मैं भविष्य में किसी को (अपने आप को) मदद करते हैं।

+0

डॉकरफ़ाइल में एआरजी का उल्लेख करने के लिए धन्यवाद –

4

यह एक शर्म की बात है कि हमें कई एआरजी भी चाहिए, इसके परिणामस्वरूप कई परतें होती हैं और इसके कारण निर्माण धीमा हो जाता है, और किसी के भी यह सोचकर कि there is no way एकाधिक एआरजी सेट करने के लिए।

संबंधित मुद्दे