Jika uid
Anda pada host (id -u
) tidak sama dengan uid
pengguna dalam wadah buruh pelabuhan (sering "buruh pelabuhan") maka Anda dapat mengalami masalah ini. Anda dapat mencoba:
- Menjadikan UID sama antara pengguna Anda dan pengguna di wadah buruh pelabuhan.
- Menyetel izin grup pada direktori agar dapat ditulisi untuk grup tempat Anda dan buruh pelabuhan berada.
- Anda juga dapat menggunakan opsi nuklir:
chmod a+rwx -R project-dir/
Opsi nuklir akan membuat git
Anda ruang kerja kotor, yang akan sangat mengganggu Anda, jadi bukan solusi jangka panjang terbaik. Itu menghentikan pendarahan.
Untuk lebih memahami masalahnya, Anda mungkin menemukan ini berguna:
- https://github.com/docker/docker/issues/7906
- https://github.com/docker/docker/issues/7198
Jawaban baru:
Pertanyaan ini tampaknya memiliki banyak lalu lintas dan ada solusi yang lebih baik yang tersedia sekarang - fixuid, seperti namanya, ini adalah eksekusi ajaib untuk mengubah uid &gid pengguna penampung pada permulaan penampung (menggunakan -u someone:somebody).
Untuk penjelasan lebih mendalam, lihat:https://boxboat.com/2017/07/25/fixuid-change-docker-container-uid-gid/
Jawaban lama:
Pada docker versi 1.7 Anda memiliki opsi untuk me-mount direktori host dengan izin ke container menggunakan flag :Z atau :z seperti:
docker run -v ./api:/usr/src/app:Z
- :z - akan menambahkan izin ke semua kontainer menggunakan label 'svirt_sandbox_file_t'
- :Z - hanya akan menambahkan izin ke label penampung saat ini
Pada docker-compose v1.4.0, Anda dapat menggunakannya di docker compose seperti ini:
volumes:
- ./api:/usr/src/app:Z
Meskipun saya harus menambahkan, saya masih memiliki beberapa masalah dengan ini (lihat Menambahkan izin ke direktori Host dengan komposisi docker).
Referensi:
Menggunakan Volume dengan Docker dapat Menyebabkan Masalah dengan SELinux - http://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/
Panduan pengguna Docker -https://docs.docker.com/engine/userguide/dockervolumes/#volume-labels
Docker-compose catatan rilis untuk v1.4.0 - https://github.com/docker/compose/releases/tag/1.4.0