मैं गैर रूट के रूप में डॉकरी कॉपी कैसे कर सकता हूं?


143

डॉकर छवि बनाते समय, मैं COPYछवि में एक फाइल कैसे बनाऊं ताकि परिणामी फाइल रूट के अलावा किसी अन्य उपयोगकर्ता के स्वामित्व में हो?

जवाबों:


206

संस्करणों v17.09.0-CE और नए के लिए

वैकल्पिक ध्वज का उपयोग या --chown=<user>:<group>तो आदेशों के साथ करें।ADDCOPY

उदाहरण के लिए

COPY --chown=<user>:<group> <hostPath> <containerPath>

--Chown ध्वज का प्रलेखन अब मुख्य Dockerfile संदर्भ पृष्ठ पर लाइव है ।

समस्या 34263 को मर्ज कर दिया गया है और रिलीज़ v17.09.0-CE में उपलब्ध है ।


V17.09.0-ce से पुराने संस्करणों के लिए

डॉकर COPYरूट के अलावा अन्य उपयोगकर्ता के रूप में समर्थन नहीं करता है । आप की जरूरत है chown/ chmodफ़ाइल के बादCOPY आदेश।

उदाहरण डॉकरीफाइल:

from centos:6
RUN groupadd -r myuser && adduser -r -g myuser myuser
USER myuser
#Install code, configure application, etc...
USER root
COPY run-my-app.sh /usr/local/bin/run-my-app.sh
RUN chown myuser:myuser /usr/local/bin/run-my-app.sh && \
    chmod 744 /usr/local/bin/run-my-app.sh
USER myuser
ENTRYPOINT ["/usr/local/bin/run-my-app.sh"]

V17.09.0-CE से पहले, COPYकमांड के लिए डॉकरीफाइल संदर्भ ने कहा:

सभी नई फाइलें और निर्देशिकाएं 0 के यूआईडी और जीआईडी ​​के साथ बनाई गई हैं।


इतिहास इस सुविधा को कई GitHub मुद्दों के माध्यम से ट्रैक किया गया है: 6119 , 9943 , 13600 , 27303 , 28499 , अंक 30110

समस्या 34263 वह समस्या है जिसने वैकल्पिक ध्वज कार्यक्षमता को लागू किया और समस्या 467 ने दस्तावेज़ को अद्यतन किया।


3
यह निराशाजनक है, चूँकि बहुत सारी फाइलें एक अविश्वसनीय रूप से धीमी हो गई हैं क्योंकि ओवरले 2 डिफ़ॉल्ट स्टोरेज-ड्राइवर बन गया है
hbogert

1
हां, इसके अलावा, यह बिना किसी स्पष्ट कारण के लिए एक बड़ी अतिरिक्त छवि परत बनाता है (मेरे मामले में:> chown40 एमबी फ़ाइलों पर चलने के लिए 300 एमबी)।
डिर्क

सीओपीवाई कमांड के साथ-साथ रनिंग के लिए भी एक लाभ है जो आकार में कमी है। अगर हम उन दोनों कमांड को अलग से चलाते हैं (COPY <host_path> <source_path>; chown other_user: other_user) तो इसने एक अतिरिक्त लेयर बनाई जो अंततः इमेज साइज को दोगुना कर देती है।
अभिषेक ठाकुर

यह उत्तर एक जीवनरक्षक है। बहुत बहुत धन्यवाद, एक समस्या का हल जो मैं कुछ घंटों से लड़ रहा था।
Colby Hill
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.