Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

594
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!