Jawaban:
Untuk versi v17.09.0-ce dan yang lebih baru
Gunakan bendera opsional --chown=<user>:<group>
dengan perintah ADD
atau COPY
.
Sebagai contoh
COPY --chown=<user>:<group> <hostPath> <containerPath>
Dokumentasi untuk flag --chown sekarang ditampilkan langsung di halaman Referensi Dockerfile utama .
Masalah 34263 telah digabungkan dan tersedia dalam rilis v17.09.0-ce .
Untuk versi yang lebih lama dari v17.09.0-ce
Docker tidak mendukung COPY
sebagai pengguna selain root. Anda perlu chown
/ chmod
file setelah itu COPY
perintah.
Contoh 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"]
Sebelum v17.09.0-ce, Dockerfile Reference untuk COPY
perintah tersebut mengatakan:
Semua file dan direktori baru dibuat dengan UID dan GID 0.
Sejarah Fitur ini telah dilacak melalui beberapa masalah GitHub: 6119 , 9943 , 13600 , 27303 , 28499 , Edisi 30110 .
Masalah 34263 adalah masalah yang mengimplementasikan fungsionalitas flag opsional dan Edisi 467 memperbarui dokumentasi.
chown
pada 40MB file).