run - ¿Cómo docker COPY como no root?
docker tag (1)
Mientras construyo una imagen Docker, ¿cómo
COPY
un archivo en la imagen para que el archivo resultante sea propiedad de un usuario que no sea root?
Para versiones v17.09.0-ce y posteriores
Use el indicador opcional
--chown=<user>:<group>
con los comandos
ADD
o
COPY
.
Por ejemplo
COPY --chown=<user>:<group> <hostPath> <containerPath>
La documentación para el indicador --chown ahora está activa en la página principal de referencia de Dockerfile .
El número 34263 se ha fusionado y está disponible en la versión v17.09.0-ce .
Para versiones anteriores a v17.09.0-ce
Docker no admite
COPY
como usuario que no sea root.
Necesita
chown
/
chmod
el archivo
después
del comando
COPY
.
Dockerfile de ejemplo:
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"]
Antes de v17.09.0-ce, la referencia de Dockerfile para el comando
COPY
decía:
Todos los archivos y directorios nuevos se crean con un UID y GID de 0.
Historial Esta función ha sido rastreada a través de múltiples problemas de GitHub: 6119 , 9943 , 13600 , 27303 , 28499 , problema 30110 .
34263 es el problema que implementó la funcionalidad de 34263 opcional y el problema 467 actualizó la documentación.