Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

595
Vistas
Página web de alojamiento con nginx dentro de docker-compose: no se puede resolver el nombre de host

Mi configuración es la siguiente:

  1. Backend: servidor Flask ejecutándose en el puerto 5000; implementado en python
  2. Frontend: la aplicación React envía solicitudes http al backend
  3. Ambos están dockerizados y se ejecutan en el mismo nodo usando docker-compose

Mi archivo docker-compose:

 version: "3" services: backend: ports: - "5000:5000" image: <backend-image> frontend: depends_on: - backend ports: - "80:80" links: - "backend:backend-python" image: <frontend-image>

El nginx.conf

 server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri /index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }

Desde la interfaz, envío solicitudes a http://backend-python:5000/<my-endpoint> . backend-python se define dentro de la especificación de frontend en docker-compose como nombre de host del backend. Cuando ejecuto docker-compose up localmente y abro localhost en un navegador, la página se muestra como se esperaba. Cuando ejecuto docker-compose up en una Raspberry Pi 3, la interfaz no puede resolver http://backend-python:5000/<my-endpoint> cuando abro la página localmente en mi computadora portátil.

También traté de reemplazar nginx con servir la compilación usando serve . Esto conduce al mismo comportamiento que el descrito anteriormente.

Al buscar en Google, me parece que el uso de docker-compose crea su propia red en la que cada contenedor se puede encontrar por su nombre o nombres definidos en los links .

¿Alguien tiene idea de por qué el nombre no se puede resolver al acceder a la página desde otra máquina?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Una aplicación frontend se ejecuta dentro de un navegador y cuando la aplicación intenta llegar a una API, es el navegador el que intenta comunicarse con ella.

Cuando aloja una aplicación frontend dentro de la ventana acoplable con nginx, todo lo que hace el contenedor es servir el archivo estático que necesita el navegador, pero no es nginx el que intenta comunicarse con su API.

Es por eso que su navegador no puede acceder a su backend usando el nombre del contenedor, necesita exponer su API y cambiar la API/URL backend en su aplicación frontend para usar http://localhost:5000 .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda