我使用了下面的docker-compose.yml文件来部署FastAPI、MongoDB、Minio docker容器。
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:8888
从FastAPI内部,我可以使用minio:9000端点连接到minio示例。API为请求的minio对象返回 get_presigned_url 的输出,但URL的格式为 *http://minio:9000/imaging/images/30 d12 c89... *,我无法从Docker容器外部访问该格式。
我找到了一个快速修复/解决方法来解决这个问题,即将此行添加到 /etc/hosts 文件中即可
127.0.0.1 minio
但在我看来,这是一个廉价的解决方案,主机必须修改他/她的机器。
我觉得在Docker容器中添加nginx代理可以很容易地解决这个问题,但是我不知道该怎么做?
如果您能建议使用nginx配置设置来解决这个问题,或者任何其他建议也是受欢迎的,这将是很有帮助的。
2条答案
按热度按时间kkih6yb81#
您可以尝试通过Docker端口转发(网络)或请参阅指南:https://docs.min.io/docs/setup-nginx-proxy-with-minio
wlzqhblo2#
您可以使用另一个地址进行签名(例如,
localhost:9000
从您的计算机网络访问它)。然后,您可以将代理应用到Minio客户端,以便它向Docker网络中的容器发出实际请求。我已经设法与下面的代码(在dotnet的例子):