2015-12-10 7 views
5

मैं एक dockerfile लिख रहा हूँ और एक चर में "ls" कमांड के उत्पादन में रखना चाहते हैं में चलाने शिक्षा का उत्पादन नीचे दिखाया गया है:Dockerfile: एक चर

$file = ls /tmp/dir 

यहाँ, "dir" केवल इसके अंदर एक फाइल।

निम्नलिखित भागो अनुदेश एक dockerfile के भीतर काम नहीं कर रहा

RUN $file = ls /tmp/dir 

उत्तर

8

आप अन्य Dockerfile आदेशों में बाद में उपयोग के लिए एक चर नहीं बचा सकता (यह है कि अगर आपका इरादा है)। ऐसा इसलिए है क्योंकि प्रत्येक RUN एक नए खोल में होता है।

हालांकि, अगर आप ls के आउटपुट को कैप्चर करना चाहते हैं तो आपको इसे RUN यौगिक कमांड में करने में सक्षम होना चाहिए।

RUN file="$(ls -1 /tmp/dir)" && echo $file 

या बस subshell इनलाइन उपयोग: उदाहरण के लिए:

RUN echo $(ls -1 /tmp/dir) 

आशा इस बारे में अपनी समझ में मदद करता है। यदि आपके पास हल करने के लिए कोई वास्तविक त्रुटि या समस्या है, तो मैं इस पर एक काल्पनिक उत्तर के बजाय विस्तार कर सकता हूं।