diff --git a/Dockerfile b/Dockerfile index 2074094..81fa97e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,18 +10,23 @@ RUN apt-get update && apt-get install -y \ # Crear directorio para las dependencias WORKDIR /app -# Instalar dependencias en un directorio temporal +# Instalar dependencias globalmente COPY requirements.txt . -RUN pip install --user --no-cache-dir --verbose -r requirements.txt +RUN pip install --no-cache-dir --verbose -r requirements.txt + # Imagen final FROM python:3.11-slim +# Instalar requirements en la imagen final para que los binarios estén disponibles +COPY requirements.txt ./ +RUN pip install --no-cache-dir --verbose -r requirements.txt + # Establecer variables de entorno para FastAPI y Celery ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 ENV PYTHONPATH=/app -ENV PATH=/home/fastapi/.local/bin:$PATH +ENV PATH=/usr/local/bin:/home/fastapi/.local/bin:$PATH ENV C_FORCE_ROOT=1 ENV REDIS_HOST=redis ENV REDIS_PORT=6379 @@ -37,32 +42,17 @@ RUN apt-get update && apt-get install -y \ && rm -rf /var/lib/apt/lists/* # Establecer directorio de trabajo -WORKDIR /app - -# Copiar dependencias instaladas desde el builder -COPY --from=builder /root/.local /home/fastapi/.local - -# Cambiar ownership de los archivos de Python packages al usuario fastapi -RUN chown -R fastapi:fastapi /home/fastapi/.local - -# Instalar supervisor para manejar múltiples procesos -RUN pip install supervisor +WORKDIR / # Copiar el código de la aplicación COPY . . # Crear directorios necesarios y establecer permisos -RUN mkdir -p /app/logs /app/uploads /app/temp /var/log/supervisor /etc/supervisor/conf.d && \ +RUN mkdir -p /app/logs /app/uploads /app/temp && \ chown -R fastapi:fastapi /app && \ - chmod -R 755 /app && \ - chown -R fastapi:fastapi /var/log/supervisor /etc/supervisor + chmod -R 755 /app -# Copiar configuraciones de Supervisor (como root antes de cambiar usuario) -COPY supervisord.conf /etc/supervisor/supervisord.conf -COPY supervisor_celery.conf /etc/supervisor/conf.d/efc_celery.conf - -# Cambiar al usuario no-root -USER fastapi +# El comando se define en docker-compose para cada servicio (api, worker, beat, flower) # Exponer puertos EXPOSE 8001 @@ -71,8 +61,4 @@ EXPOSE 8001 HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ CMD curl -f http://localhost:8001/api/v1/health || exit 1 -# Cambiar temporalmente a root para iniciar supervisor -USER root - -# Comando por defecto: usar Supervisor para gestionar FastAPI y Celery -CMD ["supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"] \ No newline at end of file +# El comando se define en docker-compose para cada servicio (api, worker, beat, flower) \ No newline at end of file diff --git a/Dockerfile.prod b/Dockerfile.prod index 9751747..776b256 100644 --- a/Dockerfile.prod +++ b/Dockerfile.prod @@ -36,29 +36,20 @@ RUN apt-get update && apt-get install -y \ WORKDIR /app -# Copiar dependencias instaladas desde el builder -COPY --from=builder /root/.local /home/fastapi/.local -# Instalar supervisor para manejar múltiples procesos -RUN pip install supervisor +# Instalar requirements en la imagen final para que los binarios estén disponibles +COPY requirements.txt ./ +RUN pip install --no-cache-dir --verbose -r requirements.txt + # Copiar el código de la aplicación COPY . . # Crear directorios necesarios y establecer permisos -RUN mkdir -p /app/logs /app/uploads /app/temp /var/log/supervisor /etc/supervisor/conf.d && \ +RUN mkdir -p /app/logs /app/uploads /app/temp && \ chown -R fastapi:fastapi /app && \ - chmod -R 755 /app && \ - chown -R fastapi:fastapi /var/log/supervisor /etc/supervisor + chmod -R 755 /app -# Copiar configuraciones de Supervisor para producción (como root antes de cambiar usuario) -COPY supervisord.conf /etc/supervisor/supervisord.conf -COPY supervisor_celery.conf /etc/supervisor/conf.d/efc_celery.conf +# El comando se define en docker-compose para cada servicio (api, worker, beat, flower) -# Cambiar temporalmente a root para Supervisor -USER root - -EXPOSE 8001 - -# Comando de producción: iniciar Supervisor para gestionar todos los procesos -CMD ["supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"] +EXPOSE 8001 \ No newline at end of file diff --git a/controllers/RESTController.py b/controllers/RESTController.py index 301e1bd..02882cb 100644 --- a/controllers/RESTController.py +++ b/controllers/RESTController.py @@ -60,7 +60,7 @@ class APIController: """ Método para obtener las credenciales de VUCEM desde la API. """ - return await self._make_request_async('GET', f'vucem/vucem/?usuario={importador}') + return await self._make_request_async('GET', f'vucem/vucem/?contribuyente={importador}') async def post_pedimento_service(self, data: Dict[str, Any]) -> Dict[str, Any]: """