cambios en procesos de pedimentos y dockerfile

This commit is contained in:
2025-08-21 12:13:19 -06:00
parent 6a597549f9
commit 5f80629470
3 changed files with 22 additions and 45 deletions

View File

@@ -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"]
# El comando se define en docker-compose para cada servicio (api, worker, beat, flower)

View File

@@ -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

View File

@@ -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]:
"""