Utilicé el siguiente archivo docker-compose.yml para implementar contenedores docker FastAPI, MongoDB, Minio.
version: '3.7' services: db: image: mongo:latest container_name: mongodb user: 1000:1000 volumes: - /home/krishna/mongodb/db:/data/db minio: image: minio/minio:latest container_name: minio command: server /data --console-address ":9001" ports: - 9000:9000 - 9001:9001 volumes: - /data:/data app: build: . container_name: imaging_container ports: - 8888:8888Desde dentro de FastAPI, puedo conectarme a la instancia minio usando el punto final minio:9000 . La API devuelve el resultado de get_presigned_url para un objeto minio solicitado, pero la URL tiene el formato http:// minio:9000 /imaging/images/30d12c89... al que no puedo acceder desde fuera del contenedor docker.
Encontré una solución rápida/alternativa para resolver esto, es decir, agregar esta línea al archivo /etc/hosts funciona
127.0.0.1 minioPero me parece una solución económica en la que el host tiene que modificar su máquina.
Siento que esto se puede resolver fácilmente agregando el proxy nginx al contenedor docker. Pero no estoy seguro de cómo hacer eso?
Sería útil si puede sugerir la configuración de nginx para resolver esto o, alternativamente, cualquier otra sugerencia también es bienvenida.
Puede intentar exponer el puerto a través del reenvío de puerto docker (red) o consulte las guías: https://docs.min.io/docs/setup-nginx-proxy-with-minio