Ich möchte Dateiberechtigungen für Dateien einrichten, die ich einem Docker-Image hinzufüge. Ich habe diese einfache Dockerfile:Dateibesitz beim Erstellen von Docker-Images
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/
Aufbau dieses mit docker build -t abc .
, wo es eine foo
Datei in .
ein Bild erzeugt. Allerdings sind die Berechtigungen auf /app/foo
im Inneren nicht was ich will.
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
Beachten Sie, dass foo
Datei gehört nicht baz
trotz the setgid bit zu Gruppe auf dem /app
dir eingestellt wird. Ich konnte RUN chown -R baz:baz /app
verwenden, nachdem Sie die Dateien hinzufügen, aber das casues die eine Kopie der Ebene geschaffen werden (Beachten Sie die Größe der beiden Schichten unten):
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
Gibt es eine Möglichkeit, dies zu umgehen und haben der Besitz von Dateien hinzugefügt werden, was ich will?
Gibt nicht der Ausgang '-rw-rw-r-- 1 baz baz 419 Sep 2 21:43 foo 'an, dass' foo' zur Gruppe 'baz' gehört? –
@WaleedKhan Ich hatte die falsche Ausgabe eingefügt. Das war von einem Lauf, bei dem ich die Foo-Datei chmodierte, nachdem ich sie dem Bild hinzugefügt hatte. –
Gibt es einen bestimmten Grund, warum Sie nicht möchten, dass die Eigentümerschaft/Gruppe als separater Schritt/Layer angegeben wird? –