Saya memiliki wadah docker PHP yang gagal untuk mulai mengatakan itu 'session_start' don't have permissions on /tmp/xxxx file.
Saya menemukan bahwa izin folder' / tmp ' adalah 'drwxr-xr-t'. Ketika saya mengubahnya menjadi 'drwxrwxrwt', wadah berfungsi seperti biasa.
Saya mungkin telah melakukan sesuatu yang salah pada sistem host saya untuk men-debug masalah lain yang tidak terkait. Tapi saya tidak ingat apa yang telah saya lakukan dan apa yang bisa menyebabkan masalah di atas.
Jadi saya ingin tahu dari mana izin folder '/tmp' di dalam wadah buruh pelabuhan diwarisi?
Melihat gambar dasar yang Anda gunakan /tmp izin diatur dengan benar:
$ docker run -it --rm php:5-apache ls -ald /tmpdrwxrwxrwt 1 root root 4096 Jan 23 00:10 /tmp
Ini berarti modifikasi pada izin folder telah terjadi di pihak anda, baik dalam pembuatan gambar Anda dari beberapa langkah di Dockerfile Anda, atau dalam cara Anda menjalankan penampung Anda. Tanpa detail Dockerfile atau perintah yang digunakan untuk menjalankan container Anda (termasuk docker-compose.file yml jika Anda menggunakannya), saya tidak percaya itu mungkin untuk memberikan jawaban yang lebih rinci.
Jika gambarnya bagus, Hal berikutnya yang harus diperiksa adalah Anda mengikat dan volume mount, karena dapat mengacaukan segalanya. Ini juga layak untuk memeriksa skrip titik masuk apa pun jika mereka melakukan sesuatu yang konyol.
@ BMitch gambar saya adalah ‘dari php:5-apache’ yang kemudian ‘dari debian:stretch-slim’ yang kemudian ‘dari awal’. Tak satu pun dari mereka memodifikasi izin ‘/tmp’ secara eksplisit.
Bisakah anda memberikan gambar yang digunakan dan / atau Dockerfile yang digunakan untuk membangun gambar Anda? Sertakan juga perintah yang Anda gunakan untuk memulai penampung, termasuk penulisan apa pun.berkas yml.