Laravel Sail/Docker集成MinIO:图片上传时无法写入文件
问题排查与解决方案
核心原因
Laravel容器内的127.0.0.1指向容器自身,而非宿主机的MinIO容器,导致连接被拒绝。Docker容器间需通过容器名称在共享网络内通信。
步骤1:修改环境变量配置
更新.env文件中的MinIO地址配置,将127.0.0.1替换为MinIO容器名称minio:
FILESYSTEM_DISK=s3 AWS_ACCESS_KEY_ID=sail AWS_SECRET_ACCESS_KEY=password AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET=spondise AWS_URL=http://minio:9000 AWS_ENDPOINT=http://minio:9000 AWS_USE_PATH_STYLE_ENDPOINT=true
步骤2:确认容器网络一致性
确保Laravel服务与MinIO服务处于同一Docker网络(你的配置中均已加入sail网络,此步骤可跳过;若不一致需调整docker-compose.yml将Laravel服务加入sail网络)。
步骤3:验证MinIO桶是否存在
MinIO不会自动创建桶,需提前在MinIO控制台(http://localhost:8900)创建代码中用到的temporary、blog等桶。
步骤4:重启服务使配置生效
执行以下命令重启Laravel Sail服务:
sail down sail up -d
测试连通性(可选)
若仍有问题,可进入Laravel容器内测试MinIO连通性:
sail shell curl http://minio:9000/minio/health/live
返回OK则说明连通正常。
内容的提问来源于stack exchange,提问作者Vince
相关产品推荐
相关产品推荐

