2015-12-09 10 views
6

कोई डॉकरफ़ाइल में तर्क कैसे पास करता है?डॉकर बिल्ड तर्क

चलें कहते हैं कि मैं dockerfile है:

FROM ubuntu:14.04 

MAINTAINER Karl Morrison 

sudo do-something-here myVarHere 

मैं उदाहरण के लिए इतनी के रूप में फ़ाइल का निर्माण करना चाहते हैं:

docker build basickarl/my-image-example /directory/of/my/dockerfile "my string to be passed to myVarHere here!" 

उत्तर

2

हम एक ऐसी ही आवश्यकता थी और एक अपेक्षाकृत के साथ आया गया है सरल स्क्रिप्ट जो वास्तव में करता है:

हम dockerfile_template नामक एक फ़ाइल बनाते हैं जिसमें हम वर्णन करते हैं जैसे वैरिएबल का उपयोग करते हैं। स्क्रिप्ट उस फ़ाइल को लेती है, स्ट्रिंग प्रतिस्थापन करता है और docker build dockerfile पर कॉल करने से पहले इसे dockerfile (no _template) पर प्रतिलिपि बनाता है।

बहुत अच्छा काम करता है। भविष्य की आवश्यकताओं के लिए भी बहुत विस्तारणीय।

अद्यतन:

स्क्रैप कि। का प्रयोग करें build-arg (here)

5

डोकर ARG कि तुम यहाँ

FROM ubuntu:14.04 

MAINTAINER Karl Morrison 

ARG myVarHere 

RUN do-something-here myVarHere 

उपयोग कर सकते हैं और फिर --build-arg का उपयोग कर निर्माण किया है:

docker build --build-arg myVarHere=value 
+4

निर्माण आर्ग साथ परेशानी हो रही उन लोगों के लिए, ऊपर काफी हद तक सही है, हालांकि तर्कों को रन कमांड में पर्यावरण चर के रूप में उपयोग किया जाता है। आप इस [यहां] (https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables---build-arg) और [यहां] (https) पर दस्तावेज़ देख सकते हैं : //docs.docker.com/engine/reference/builder/#environment-replacement)। उपर्युक्त रन कमांड तब होगा: 'रन करें-कुछ-यहां $ myVarHere' –

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