Shopware 6 und MinIO

Da man beim einfachen Entwickeln nicht ein AWS S3-Bucket für die Entwickler bereit stellen möchte, kann man hier sehr gut MinIO verwenden. Es lässt sich schnell in docker-compose einbinden und die FileSystems von Shopware können den normalen S3-Adapter verwenden.

docker-compose.yml:

version: '3'

services:
shopware:
....


minio:
image: minio/minio:latest
volumes:
- minio_data1:/data
ports:
- "9000:9000"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minioKey123
command: server /data
networks:
- shopware-web

createbuckets:
image: minio/mc
depends_on:
- minio
entrypoint: >
/bin/sh -c "
/usr/bin/mc config host add myminio http://minio:9000 minio minioKey123;
/usr/bin/mc rm -r --force myminio/public;
/usr/bin/mc mb myminio/public;
/usr/bin/mc anonymous set public myminio/public;
exit 0;
"
networks:
- shopware-web

volumes:
minio_data1:
driver: local

networks:
shopware-web:
external: false


Nun kann man für einzelne der getrennten Dateisysteme das Bucket als Storage hinterlegen (config/packages/shopware.yaml):

shopware:
filesystem:
public:
type: "amazon-s3"
url: 'http://s3.local:9000/public'
config:
bucket: "public"
endpoint: "http://minio:9000"
use_path_style_endpoint: true
region: 'local'
credentials:
key: minio
secret: minioKey123
options:
visibility: "public"
theme:
type: "amazon-s3"
url: 'http://s3.local:9000/public'
config:
bucket: "public"
endpoint: "http://minio:9000"
use_path_style_endpoint: true
region: 'local'
credentials:
key: minio
secret: minioKey123
options:
visibility: "public"
cdn:
strategy: md5


Man kann auch getrennte Buckets nutzen, aber das macht an sich wenig Sinn.

Nun Cache leeren, Themes compilieren und die Medien einmal neu importieren oder auf in das Bucket kopieren.

Das kann man gut mit dem lokalen Client machen:

wget http://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin
mc config host add myminio http://localhost:9000 minio minioKey123


Die Dokumentation ist gewöhnungsbedürftig und ChatGPT liefert auch gerne veraltete Anleitungen.. aber mit etwas suchen klappt es dann doch recht gut.
User annonyme 2024-03-07 19:18

write comment:
Six + = 14

Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?