cambios en procesos de pedimentos y dockerfile
This commit is contained in:
40
Dockerfile
40
Dockerfile
@@ -10,18 +10,23 @@ RUN apt-get update && apt-get install -y \
|
|||||||
# Crear directorio para las dependencias
|
# Crear directorio para las dependencias
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Instalar dependencias en un directorio temporal
|
# Instalar dependencias globalmente
|
||||||
COPY requirements.txt .
|
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
|
# Imagen final
|
||||||
FROM python:3.11-slim
|
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
|
# Establecer variables de entorno para FastAPI y Celery
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
ENV PYTHONDONTWRITEBYTECODE=1
|
||||||
ENV PYTHONUNBUFFERED=1
|
ENV PYTHONUNBUFFERED=1
|
||||||
ENV PYTHONPATH=/app
|
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 C_FORCE_ROOT=1
|
||||||
ENV REDIS_HOST=redis
|
ENV REDIS_HOST=redis
|
||||||
ENV REDIS_PORT=6379
|
ENV REDIS_PORT=6379
|
||||||
@@ -37,32 +42,17 @@ RUN apt-get update && apt-get install -y \
|
|||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Establecer directorio de trabajo
|
# Establecer directorio de trabajo
|
||||||
WORKDIR /app
|
WORKDIR /
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Copiar el código de la aplicación
|
# Copiar el código de la aplicación
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
# Crear directorios necesarios y establecer permisos
|
# 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 && \
|
chown -R fastapi:fastapi /app && \
|
||||||
chmod -R 755 /app && \
|
chmod -R 755 /app
|
||||||
chown -R fastapi:fastapi /var/log/supervisor /etc/supervisor
|
|
||||||
|
|
||||||
# Copiar configuraciones de Supervisor (como root antes de cambiar usuario)
|
# El comando se define en docker-compose para cada servicio (api, worker, beat, flower)
|
||||||
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
|
|
||||||
|
|
||||||
# Exponer puertos
|
# Exponer puertos
|
||||||
EXPOSE 8001
|
EXPOSE 8001
|
||||||
@@ -71,8 +61,4 @@ EXPOSE 8001
|
|||||||
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
|
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
|
||||||
CMD curl -f http://localhost:8001/api/v1/health || exit 1
|
CMD curl -f http://localhost:8001/api/v1/health || exit 1
|
||||||
|
|
||||||
# Cambiar temporalmente a root para iniciar supervisor
|
# El comando se define en docker-compose para cada servicio (api, worker, beat, flower)
|
||||||
USER root
|
|
||||||
|
|
||||||
# Comando por defecto: usar Supervisor para gestionar FastAPI y Celery
|
|
||||||
CMD ["supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
|
|
||||||
@@ -36,29 +36,20 @@ RUN apt-get update && apt-get install -y \
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Copiar dependencias instaladas desde el builder
|
|
||||||
COPY --from=builder /root/.local /home/fastapi/.local
|
|
||||||
|
|
||||||
# Instalar supervisor para manejar múltiples procesos
|
# Instalar requirements en la imagen final para que los binarios estén disponibles
|
||||||
RUN pip install supervisor
|
COPY requirements.txt ./
|
||||||
|
RUN pip install --no-cache-dir --verbose -r requirements.txt
|
||||||
|
|
||||||
|
|
||||||
# Copiar el código de la aplicación
|
# Copiar el código de la aplicación
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
# Crear directorios necesarios y establecer permisos
|
# 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 && \
|
chown -R fastapi:fastapi /app && \
|
||||||
chmod -R 755 /app && \
|
chmod -R 755 /app
|
||||||
chown -R fastapi:fastapi /var/log/supervisor /etc/supervisor
|
|
||||||
|
|
||||||
# Copiar configuraciones de Supervisor para producción (como root antes de cambiar usuario)
|
# El comando se define en docker-compose para cada servicio (api, worker, beat, flower)
|
||||||
COPY supervisord.conf /etc/supervisor/supervisord.conf
|
|
||||||
COPY supervisor_celery.conf /etc/supervisor/conf.d/efc_celery.conf
|
|
||||||
|
|
||||||
# Cambiar temporalmente a root para Supervisor
|
|
||||||
USER root
|
|
||||||
|
|
||||||
EXPOSE 8001
|
EXPOSE 8001
|
||||||
|
|
||||||
# Comando de producción: iniciar Supervisor para gestionar todos los procesos
|
|
||||||
CMD ["supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ class APIController:
|
|||||||
"""
|
"""
|
||||||
Método para obtener las credenciales de VUCEM desde la API.
|
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]:
|
async def post_pedimento_service(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user