2016-12-11 16 views
5

पर तर्क पास करें क्या माता-पिता डॉकर छवि में परिभाषित तर्कों का उपयोग करने का कोई तरीका है?पेरेंट डॉकरफाइल

माता पिता Dockerfile

FROM openjdk:8-jdk 

ARG user=jenkins 
ARG group=jenkins 
ARG uid=1000 
ARG gid=1000 

उत्तर

2

Build arguments छवियों में कायम नहीं कर रहे हैं, तो वे उपलब्ध बनाता में FROM एक माता पिता छवि नहीं होगा से निम्नलिखित बच्चे को देखते हुए Dockerfile

FROM jenkins 

USER ${user} 

RUN echo "${user}" 

अंश।

एआरजी निर्देश के विपरीत, निर्मित छवि में ENV मान हमेशा बने रहते हैं।

एआरजी चर निर्मित छवि में बने नहीं हैं क्योंकि एनएनवी चर हैं।

तर्क उन्हें कहीं भी संग्रहीत करके जारी रखा जा सकता है, सबसे आसान स्थान पर्यावरण चर में है। बच्चे छवि में

ARG IMAGE_USER=jenkins 
ENV IMAGE_USER=$IMAGE_USER 

सभी RUN चरणों तो अपने वातावरण में IMAGE_USER के लिए उपयोग होगा।

+0

क्या मैं किसी भी तरह से अपने 'डॉकरफ़ाइल' में उपयोगकर्ता निर्देश के वर्तमान मूल्य को निकाल सकता हूं और USER को ओवरराइड करने से पहले इसे सहेज सकता हूं। कुछ ऐसा: 'उपयोगकर्ता = $ {USER} ', फिर' उपयोगकर्ता रूट ', फिर सामान करें, फिर' USER $ {user} '? – lanoxx

+0

@lanoxx नहीं, डॉकर्स बिल्ड सिस्टम के साथ नहीं। आप उपयोगकर्ता को फ़ाइल फ़ाइल सिस्टम में कहीं भी स्टोर कर सकते हैं और उस संग्रहीत उपयोगकर्ता पर वापस जाने के लिए ['gosu'] (https://github.com/tianon/gosu) खोल में कुछ उपयोग कर सकते हैं। – Matt

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