2015-09-02 9 views
5

मैं उन फ़ाइलों के लिए फ़ाइल अनुमतियां सेट अप करना चाहता हूं जो मैं डॉकर छवि में जोड़ता हूं।डॉकर छवियों के निर्माण पर फ़ाइल स्वामित्व

FROM ubuntu:utopic 

WORKDIR /app 
RUN groupadd -g 1000 baz && useradd -u 1000 -g baz baz -d /app -s /bin/false 
RUN chown baz:baz /app && chmod g+s /app 
# want this to be have group baz 
ADD foo /app/ 

इस बिल्डिंग docker build -t abc . साथ जहां . में एक foo फ़ाइल एक छवि बनाता है: मैं इस सरल Dockerfile है। हालांकि, /app/foo पर अनुमतियां जो मैं चाहता हूं वह नहीं है।

docker run abc ls -la  
total 12 
drwxr-xr-x 2 baz baz 4096 Sep 2 23:21 . 
drwxr-xr-x 37 root root 4096 Sep 3 07:27 .. 
-rw-rw-r-- 1 root root 419 Sep 2 21:43 foo 

ध्यान दें कि फ़ाइल foothe setgid bit के बावजूद समूह baz से संबंधित नहीं है /app dir पर स्थापित किया जा रहा। मैं फ़ाइलों को जोड़ने के बाद RUN chown -R baz:baz /app इस्तेमाल कर सकते हैं, लेकिन यह casues परत की एक प्रति बनाया जाना (नीचे दो परतों के आकार पर ध्यान दें):

docker history abc | head -n 3 
IMAGE    CREATED    CREATED BY          SIZE    COMMENT 
b95a3d798873  About a minute ago /bin/sh -c chown -R baz:baz /app    419 B    
7e007196c116  About a minute ago /bin/sh -C#(nop) ADD file:2b91d9890a9c392390 419 B 

वहाँ किसी तरह यह चारों ओर पाने के लिए है और है फाइलों का स्वामित्व जोड़ा जो मैं चाहता हूं?

+1

आउटपुट '-rw-rw-r-- 1 baz baz 419 Sep 2 21:43 foo' इंगित करता है कि 'foo' समूह' baz' से संबंधित है? –

+0

@ वालीदखन मैंने गलत आउटपुट चिपकाया था। वह एक रन से था जहां मैंने इसे छवि में जोड़ने के बाद foo फ़ाइल को chmoded किया था। –

+0

क्या कोई विशेष कारण है कि आप स्वामित्व/समूह को एक अलग चरण/परत के रूप में निर्दिष्ट नहीं करना चाहते हैं? –

उत्तर

3

सीधे foo जोड़ने के बजाय, आप इसे एक टैर-आर्काइव के रूप में पैक कर सकते हैं और एक विशिष्ट यूआईडी/जीआईडी ​​के लिए अनुमतियां सेट कर सकते हैं। https://unix.stackexchange.com/questions/61004/force-the-owner-and-group-for-the-contents-of-a-tar-file

आप इसे अपने डोकर छवि के भीतर सिर्फ untar कर सकते हैं उसके बाद (ADD untars स्वतः): यहाँ यह कैसे करना है पर एक पोस्ट है। आपको अतिरिक्त परत के बिना संरक्षित अनुमतियां देखना चाहिए।

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