Desarrollo-CeSPI / kimkelen

Sistema Integral de Gestión de Colegios
Other
35 stars 43 forks source link

Error al cargar un foto de estudiante #707

Open imansilla opened 1 year ago

imansilla commented 1 year ago

Hola @nvidela como andas? te consulto:

Estoy utilizando un setup en un servidor tomando de referencia las imagenes de docker, pero montado todo con un docker-compose.yml

Al querer grabar una imagen, obtengo el siguiente error, sin solución aún. Estimo que debe ser un tema de permisos en alguna parte de los Dockerfiles (app o base)

php | {Exception} File upload path "/app/data/persons-photos" is not writable.

Gracias

imansilla commented 1 year ago

hola @nvidela llegaste a ver mi mensaje? muchas gracias man

imlauera commented 1 year ago

Si levantas el docker compose para produccion que esta en el README.md, entras al contenedor y observas los permisos de las carpetas /app/data/, te vas a encontrar con esto:

6074730 -rwxrwxrwx    1 root     root          4862 May 25  2022 CSVtoFixture.php
6120515 drwxrwxrwx    2 root     root          4096 May 25  2022 disciplinary-sanction-documents
6136012 drwxrwxrwx    2 root     root          4096 May 25  2022 fixtures
6120517 drwxrwxrwx    2 root     root          4096 May 25  2022 justification-documents
6120513 drwxrwxrwx    2 root     root          4096 May 25  2022 persons-photos
6136015 drwxrwxrwx    3 root     root          4096 May 25  2022 symfony

drwxrwxrwx = chmod -R 777 Cuando clonas el repositorio de kimkelen la carpeta data no respeta estos permisos, y cuando generas la imagen con docker build esos permisos de la carpeta se transladan a la imagen, y el usuario que corre el servidor httpd es apache. Hay dos posibles soluciones a esto: Una es agregando al final del Dockerfile RUN chown -R apache /app/data asi le das permisos al usuario apache para escribir en esa carpeta, otra es ejecutando chmod -R 777 sobre la carpeta data en tu copia local. Luego de esto tenes que volver a ejecutar docker build . -t my-web-app -f docker/Dockerfile borrar los volumenes anteriores y ejecutar docker compose up usando la imagen creada desde otra carpeta. Asi lo hice yo y me funciono, no se si hay alguna mejor solucion.

https://blog.gougousis.net/file-permissions-the-painful-side-of-docker/

imansilla commented 1 year ago

Gracias Andres

Iván Agustín Mansilla Director of Technology

On Tue, Jul 4, 2023 at 4:53 PM Andrés I. @.***> wrote:

Si levantas el docker compose para produccion que esta en el README.md, entras al contenedor y observas los permisos de las carpetas /app/data/, te vas a encontrar con esto:

6074730 -rwxrwxrwx 1 root root 4862 May 25 2022 CSVtoFixture.php 6120515 drwxrwxrwx 2 root root 4096 May 25 2022 disciplinary-sanction-documents 6136012 drwxrwxrwx 2 root root 4096 May 25 2022 fixtures 6120517 drwxrwxrwx 2 root root 4096 May 25 2022 justification-documents 6120513 drwxrwxrwx 2 root root 4096 May 25 2022 persons-photos 6136015 drwxrwxrwx 3 root root 4096 May 25 2022 symfony

drwxrwxrwx = chmod -R 777 Cuando clonas el repositorio de kimkelen la carpeta data no respeta estos permisos, y cuando generas la imagen con docker build esos permisos de la carpeta se transladan a la imagen, asi que si modificas estos permisos de tu carpeta data del kimkelen con el comando chmod -R 777 data y volves a hacer el docker build te va a funcionar. https://blog.gougousis.net/file-permissions-the-painful-side-of-docker/

— Reply to this email directly, view it on GitHub https://github.com/Desarrollo-CeSPI/kimkelen/issues/707#issuecomment-1620665567, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGLOXIWLJT43BY4BXA22P4TXORYB7ANCNFSM6AAAAAAQ3GWZH4 . You are receiving this because you were mentioned.Message ID: @.***>