मैं उन फ़ाइलों के लिए फ़ाइल अनुमतियां सेट अप करना चाहता हूं जो मैं डॉकर छवि में जोड़ता हूं।डॉकर छवियों के निर्माण पर फ़ाइल स्वामित्व
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
ध्यान दें कि फ़ाइल foo
the 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
वहाँ किसी तरह यह चारों ओर पाने के लिए है और है फाइलों का स्वामित्व जोड़ा जो मैं चाहता हूं?
आउटपुट '-rw-rw-r-- 1 baz baz 419 Sep 2 21:43 foo' इंगित करता है कि 'foo' समूह' baz' से संबंधित है? –
@ वालीदखन मैंने गलत आउटपुट चिपकाया था। वह एक रन से था जहां मैंने इसे छवि में जोड़ने के बाद foo फ़ाइल को chmoded किया था। –
क्या कोई विशेष कारण है कि आप स्वामित्व/समूह को एक अलग चरण/परत के रूप में निर्दिष्ट नहीं करना चाहते हैं? –