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

240
Vistas
La aplicación Nginx Gunicon Dash (Flask) parece almacenar en caché los resultados en algún lugar (¿dónde?)

Configuré una aplicación de tablero para visualizar el desarrollo de infecciones por COVID-19 en Alemania a lo largo del tiempo en una máquina virtual de Google con Ubuntu 18.04.

La aplicación se basa en tres contenedores docker:

  1. La aplicación en sí servida por gunicorn (en el puerto 5000)
  2. Contenedor NGINX (hace la traducción de 80 -> 443 -> 5000)
  3. Contenedor Certbot (para adquirir y renovar certificados SSL)

Ahora mi problema es que, sin importar lo que haga, la aplicación que recibo es una versión bastante desactualizada de la aplicación (datos exactamente como cuando los implementé por primera vez. Hasta el 28 de marzo). Intenté cambiar los datos de origen para incluir más nuevos, pero también para incluir menos datos y no vi ningún cambio en absoluto. También intenté cambiar la configuración de Nginx alrededor de proxy_buffers, proxy_buffer_size, proxy_buffering, pero fue en vano.

Esto me lleva a creer que me están entregando una aplicación en caché. Probé diferentes navegadores/máquinas/dispositivos, lo que me lleva a creer que el almacenamiento en caché ocurre en el lado del servidor.

No estoy muy familiarizado con Nginx ni con Gunicorn ni con Dash. Pero lo que encuentro muy extraño es que los resultados parecían cobrarse, incluso después de que docker-compose up y down varias veces.

¿Que me estoy perdiendo aqui?

Encuentre el repositorio aquí :

basado en el siguiente archivo docker-compose :

 version: '3.7' services: web: build: ./services/web command: gunicorn --bind 0.0.0.0:5000 wsgi:app expose: - 5000 nginx: image: nginx:1.17-alpine restart: unless-stopped volumes: - ./data/nginx:/etc/nginx/conf.d - ./data/certbot/conf:/etc/letsencrypt - ./data/certbot/www:/var/www/certbot ports: - "80:80" - "443:443" depends_on: - web command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" certbot: image: certbot/certbot restart: unless-stopped volumes: - ./data/certbot/conf:/etc/letsencrypt - ./data/certbot/www:/var/www/certbot entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Podría deberse a que el Dockerfile web ejecuta un comando COPY para copiar todo ese directorio, incluido data.csv .

Por lo tanto, si coloca un nuevo data.csv en ese directorio en el host, solo se copiará en la imagen si hace docker-compose build .

Probablemente podría solucionar esto agregando un montaje de volumen al servicio web y data.csv allí, lo que le permite actualizar ese archivo en el host, luego emita un docker-compose restart web .

Para evitar tener que emitir ese comando de reinicio, probablemente deba cambiar la forma en que se codifica esta parte :

 def load_data(): global data _ = pd.read_csv(os.path.join(os.path.dirname(__file__), '../data.csv')) return _ data = load_data()

Avísame si necesitas más consejos sobre esto.

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