Error al subir certificados cuando se ejecuta con Docker
Closed this issue · 4 comments
Describa el problema (bug)
Estoy siguiendo esta guía para subir un certificado https://github.com/CRLibre/API_Hacienda/wiki/Upload-del-certificado-o-llave-criptogr%C3%A1fica
En lugar de recibir el JSON esperado, el API retorna un { resp: "-402" }
Investigando un poco el API, creo que el error viene de aquí
API_Hacienda/api/modules/files/module.php
Line 255 in 3f0855f
Al hostear el API por medio de Docker, creo que puede que haya algún problema con los permisos para escribir al directorio
Pasos para reproducir
- Tener una VM con Ubuntu 24.04 (LTS) x64
- Clonar el repositorio
- Ejecutar: docker-compose -f "docker-compose.yml" up -d --build
- Seguir los pasos para crearse una cuenta: https://github.com/CRLibre/API_Hacienda/wiki/Creaci%C3%B3n-de-Usuario
- Tratar de subir el certificado: https://github.com/CRLibre/API_Hacienda/wiki/Upload-del-certificado-o-llave-criptogr%C3%A1fica
Versión API:
git log --pretty="%h" -n1 = 3f0855f
Sistema operativo:
Ubuntu 24.04 (LTS) x64
PHP versión:
php:7.4.9-apache (docker compose)
MySQL versión:
mariadb:10.11.4 (docker compose)
Capturas de pantalla o registro de bitácora
Contexto adicional
Gracias :D
Hice una prueba con el API hosteada por ustedes: https://api-demo.crlibre.org/api.php y todo funcionó correctamente.
Tengo entendido que el https://api-demo.crlibre.org/api.php está pensada para que se realicen pruebas únicamente, no para ser utilizado directamente en producción.
¿Estoy en lo correcto?
¿Es posible o recomendado utiliza el API https://api-demo.crlibre.org/api.php en lugar de hostear el servidor uno mismo?
Hola Andrés @achaconm2001
En lugar de recibir el JSON esperado, el API retorna un { resp: "-402" }
Podrías confirmar que los permisos de escritura de directorio api y files estén habilitados.
Adentro de la carpeta "api" hay una carpeta que se llama "files"
Dale los permisos de escritura y a las subcarpetas.
¿Es posible o recomendado utiliza el API https://api-demo.crlibre.org/api.php en lugar de hostear el servidor uno mismo?
No creo que sea recomendado, pues actualmente el servicio que mencionas solamente es un demo, no está pensado para ser usado en producción, no está activamente monitoreado, ni tiene mantenimiento. Lo correcto es que cada colaborador tenga su propio servicio en su propio servidor.
Hola @JeanCarlosChavarriaHughes gracias por su ayuda.
Las carpetas dentro del contenedor de docker no tenía los permisos necesarios. Ahora ya les actualicé los permisos y todo funcionando.
Sería buena idea actualizar el archivo build de Docker y agregar los permisos para el directorio.
https://github.com/CRLibre/API_Hacienda/blob/dev/docker-php-apache/Dockerfile#L16
Después de esa línea, incluir
RUN chmod -R 777 /var/www/api
RUN chmod -R 777 /var/www/api/files
Gracias por su ayuda
Hola, @achaconm2001
Perfecto que ya pudo resolver el issue.
Podrías por favor crear el PR con el fix que mencionas, y me asignas para revisarlo y agregarlo al branch de develop dev
.
Saludos.