Saat membangun gambar Docker, bagaimana cara saya COPY
file ke dalam gambar sehingga file yang dihasilkan dimiliki oleh pengguna selain root?
sumber
Saat membangun gambar Docker, bagaimana cara saya COPY
file ke dalam gambar sehingga file yang dihasilkan dimiliki oleh pengguna selain root?
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).