He estado tratando de hacer que Django se ejecute a través de uwsgi en un contenedor acoplable.
Tenía Django ejecutándose en la ventana acoplable, con su servidor web incorporado, pero ahora que modifiqué los requisitos.txt para incluir uwsgi, sigo recibiendo el siguiente mensaje de error:
Reintentando (Reintentar(total=4, conectar=Ninguno, leer=Ninguno, redirigir=Ninguno)) después de que la conexión se rompiera por 'NewConnectionError(': No se pudo establecer una nueva conexión: [Errno -2] Nombre o servicio desconocido',) ': /simple/uwsgi/
Entonces, parece que la ventana acoplable de URL que está usando para los paquetes pip es /simple , pero ¿cómo cambió eso? Cuando creé por primera vez el contenedor, Django y psycopg se descargaron bien.
Intenté especificar la URL completa del paquete uwsgi, pero tampoco funcionó.
ventana acoplable-compose.yaml:
version: '3' services: db: image: postgres web: dns: 8.8.8.8 build: . command: uwsgi --http :8000 --module destExp.wsgi volumes: - .:/code ports: - "8000:8000" depends_on: - dbarchivo acoplable:
FROM python:3.5 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/ CMD uwsgi --http :8000 --module destExp.wsgiEse error se debe a que pip no puede llegar al host espejo. La parte /simple/uwsgi se está utilizando como ruta de URL de pip.
La línea DNS en Compose se ignora para la especificación v3 si está implementando en Swarm, como se indica en el documento . Aquí hay una solución para hacer que pip use un DNS diferente momentáneamente, simplemente actualice su línea de pip en Dockerfile a lo siguiente:
RUN echo nameserver 8.8.8.8 > /etc/resolv.conf && pip install -r requirements.txtEspero que ayude. Como solución permanente, debe investigar cómo hacer que su orquestación use el DNS personalizado o solucionar los problemas del DNS actual desde el contenedor para su caso.