पर तर्क पास करें क्या माता-पिता डॉकर छवि में परिभाषित तर्कों का उपयोग करने का कोई तरीका है?पेरेंट डॉकरफाइल
माता पिता Dockerfile
FROM openjdk:8-jdk
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
पर तर्क पास करें क्या माता-पिता डॉकर छवि में परिभाषित तर्कों का उपयोग करने का कोई तरीका है?पेरेंट डॉकरफाइल
माता पिता Dockerfile
FROM openjdk:8-jdk
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
Build arguments छवियों में कायम नहीं कर रहे हैं, तो वे उपलब्ध बनाता में FROM
एक माता पिता छवि नहीं होगा से निम्नलिखित बच्चे को देखते हुए Dockerfile
FROM jenkins
USER ${user}
RUN echo "${user}"
अंश।
एआरजी निर्देश के विपरीत, निर्मित छवि में ENV मान हमेशा बने रहते हैं।
एआरजी चर निर्मित छवि में बने नहीं हैं क्योंकि एनएनवी चर हैं।
तर्क उन्हें कहीं भी संग्रहीत करके जारी रखा जा सकता है, सबसे आसान स्थान पर्यावरण चर में है। बच्चे छवि में
ARG IMAGE_USER=jenkins
ENV IMAGE_USER=$IMAGE_USER
सभी RUN
चरणों तो अपने वातावरण में IMAGE_USER
के लिए उपयोग होगा।
क्या मैं किसी भी तरह से अपने 'डॉकरफ़ाइल' में उपयोगकर्ता निर्देश के वर्तमान मूल्य को निकाल सकता हूं और USER को ओवरराइड करने से पहले इसे सहेज सकता हूं। कुछ ऐसा: 'उपयोगकर्ता = $ {USER} ', फिर' उपयोगकर्ता रूट ', फिर सामान करें, फिर' USER $ {user} '? – lanoxx
@lanoxx नहीं, डॉकर्स बिल्ड सिस्टम के साथ नहीं। आप उपयोगकर्ता को फ़ाइल फ़ाइल सिस्टम में कहीं भी स्टोर कर सकते हैं और उस संग्रहीत उपयोगकर्ता पर वापस जाने के लिए ['gosu'] (https://github.com/tianon/gosu) खोल में कुछ उपयोग कर सकते हैं। – Matt