Tengo una ventana acoplable compuesta que lanza 2 contenedores. El problema es que parece que mi contenedor con la API a la que necesito llegar desde el otro contenedor comienza solo después y luego tengo un problema de solicitud.
version: "3.9" services: fastapi: container_name: my-api image: fastapi:latest networks: - my-network ports: - target: 8000 published: 8000 mode: host authentification: container_name: authentification networks: - my-network image: authentification:latest volumes: - .:/home/log_folder depends_on: - "fastapi" networks: my-network: Los contenedores se pueden comunicar juntos como Si lanzo manualmente el contenedor con la authentification del script después de que se inicia la API, funciona.
Cualquier pista ?
Finalmente agregué un time.sleep al comienzo de cada uno de mis contenedores con un script que llega a la API para asegurarme de que esperan que se inicie la API. Este no es un gran problema ya que estos scripts son solo scripts de prueba para verificar la autenticación, etc.
Gracias !
La dependencia comprueba solo el inicio del contenedor, no el servicio. time.sleep es una muleta, en realidad. Simplemente agregue el bloque de control de salud a su servicio fastapi
fastapi: healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000"] interval: 1s timeout: 2s retries: 10y cambie el bloque de dependencia a esto:
authentification: depends_on: fastapi: condition: service_healthy