Menurut referensi docker-compose dan docker run, user
opsi mengatur id pengguna (dan id grup) dari proses yang berjalan di wadah. Jika Anda menyetel ini ke 1000:1000
, server web Anda tidak dapat mengikat ke port 80 lagi. Mengikat ke port di bawah 1024 memerlukan izin root. Ini berarti Anda harus menghapus user: 1000:1000
yang ditambahkan pernyataan lagi.
Untuk mengatasi masalah izin dengan volume bersama, Anda perlu mengubah kepemilikan direktori. Jalankan chown 1000:1000 /path/to/volume
. Ini dapat dijalankan di dalam wadah atau langsung di sistem host. Perubahan ini terus-menerus dan segera berlaku (penampung tidak perlu dimulai ulang).
Secara umum, menurut saya volumenya harus dalam sub-direktori, mis.
volumes:
- ./public:/var/www/html
Pastikan pengguna yang benar memiliki ./public
. Jika Anda memulai wadah dan direktori tidak ada, buruh pelabuhan akan membuatnya untuk Anda. Dalam hal ini, direktori dimiliki oleh root
dan Anda perlu mengubah kepemilikan secara manual seperti yang dijelaskan di atas.
Sebagai alternatif, Anda dapat menjalankan server web sebagai pengguna yang tidak berhak (user: 1000:1000
), biarkan server mendengarkan pada port 8080 dan ubah perutean ke
ports:
- "8080:8080"