【发布时间】:2019-10-30 19:39:42
【问题描述】:
我有以下 docker-compose.yml 来为我的 Laravel 应用程序运行本地环境。
version: '3'
services:
app:
build:
context: .
dockerfile: .docker/php/Dockerfile
ports:
- 80:80
- 443:443
volumes:
- .:/var/www:delegated
environment:
AWS_ACCESS_KEY_ID: minio_access_key
AWS_SECRET_ACCESS_KEY: minio_secret_key
AWS_BUCKET: Bucket
AWS_ENDPOINT: http://s3:9000
links:
- database
- s3
database:
image: mariadb:10.3
ports:
- 63306:3306
environment:
MYSQL_ROOT_PASSWORD: secret
s3:
image: minio/minio
ports:
- "9000:9000"
volumes:
- ./storage/minio:/data
environment:
MINIO_ACCESS_KEY: minio_access_key
MINIO_SECRET_KEY: minio_secret_key
command: server /data
如您所见,我使用 minio 作为与 AWS S3 兼容的存储。这很好用,但是当我为文件 (Storage::disk('s3')->url('some-file.txt')) 生成一个 url 时,显然我得到了一个像 http://s3:9000/Bucket/some-file.txt 这样的 url,它在 Docker 网络之外不起作用。
我已经尝试将 AWS_ENDPOINT 设置为 http://127.0.0.1:9000 但 Laravel 无法连接到 Minio 服务器...
有没有办法配置 Docker / Laravel / Minio 以生成可在 Docker 网络内外访问的 url?
【问题讨论】:
标签: laravel docker amazon-s3 minio