Lors de la création d'une image Docker, comment insérer COPY
un fichier dans l'image pour que le fichier résultant appartienne à un utilisateur autre que root?
la source
Lors de la création d'une image Docker, comment insérer COPY
un fichier dans l'image pour que le fichier résultant appartienne à un utilisateur autre que root?
Pour les versions v17.09.0-ce et plus récentes
Utilisez l'indicateur facultatif --chown=<user>:<group>
avec les commandes ADD
ou COPY
.
Par exemple
COPY --chown=<user>:<group> <hostPath> <containerPath>
La documentation de l'indicateur --chown est maintenant disponible sur la page principale de référence de Dockerfile .
Le problème 34263 a été fusionné et est disponible dans la version 17.09.0-ce .
Pour les versions antérieures à la v17.09.0-ce
Docker ne prend pas en charge en COPY
tant qu'utilisateur autre que root. Vous devez chown
/ chmod
le fichier après la COPY
commande.
Exemple de Dockerfile:
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"]
Avant la v17.09.0-ce, la référence Dockerfile pour la COPY
commande disait:
Tous les nouveaux fichiers et répertoires sont créés avec un UID et un GID de 0.
Historique Cette fonctionnalité a été suivie à travers plusieurs problèmes GitHub: 6119 , 9943 , 13600 , 27303 , 28499 , problème 30110 .
Le problème 34263 est le problème qui a implémenté la fonctionnalité d'indicateur facultatif et le problème 467 a mis à jour la documentation.
chown
sur 40 Mo de fichiers).