Shopware 6 mit Docker: Setup, Performance-Tuning und Produktions-Stack
Shopware ist die führende E-Commerce-Plattform aus Deutschland — und mit Shopware 6.7 hat sich der Docker-Support deutlich verbessert. Offizielle Docker-Images, FrankenPHP-Support und klare Produktions-Empfehlungen machen Self-Hosting realistischer denn je. Aber die Anforderungen sind hoch: OpenSearch, Redis, Varnish und PHP-Workers müssen orchestriert werden.
In diesem Artikel zeigen wir den kompletten Produktions-Stack, Performance-Tuning und typische Fallstricke. Wenn Sie generell vor der Entscheidung Cloud vs. Self-Hosting stehen, empfehlen wir unseren Artikel über die wahren Kosten von Self-Hosting.
Shopware 6.7: Technische Basis
Shopware 6.7 (aktuell 6.7.6.0, Januar 2026) basiert auf dem Symfony-Framework. Version 6.8 ist für 2027 geplant — bis dahin liegt der Fokus auf Stabilität und Performance.
Systemanforderungen
| Komponente | Minimum | Empfohlen |
|---|---|---|
| PHP | 8.2 | 8.3 oder 8.4 (6.7 unterstützt 8.4) |
| MySQL | 8.0.22+ | 8.0 LTS (8.0.20/21 haben bekannte Bugs) |
| MariaDB | 10.11 | 10.11 LTS |
| Node.js | 20 | 20+ |
| RAM | 2 GB (absolutes Minimum) | 8–16 GB |
| CPU | 2 Cores | 4+ Cores |
| Storage | SSD (Pflicht) | NVMe bevorzugt |
PHP-Extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcre, pdo, pdo_mysql, phar, simplexml, xml, zip, zlib. memory_limit mindestens 512M.
Docker-Images: Die richtige Wahl
Shopware bietet offizielle Base-Images unter ghcr.io/shopware/docker-base:
ghcr.io/shopware/docker-base:8.3-frankenphp— empfohlen für Produktion (FrankenPHP, automatische Ressourcenallokation)ghcr.io/shopware/docker-base:8.3-caddy— Alternative mit Caddy (Vorsicht: Shopware warnt vor einer DoS-Schwachstelle mit Transfer-Encoding)ghcr.io/shopware/docker-base:8.3-fpm— klassisches PHP-FPM, eigener Webserver nötig
Wichtig: Die Images enthalten PHP + Extensions, aber nicht Shopware selbst. Sie kopieren Ihr Composer-Projekt ins Image und bauen es:
FROM ghcr.io/shopware/docker-base:8.3-frankenphp
COPY . /var/www/html
RUN composer install --no-dev --optimize-autoloader
Das alte shyim/shopware-Image ist seit Shopware 6.5 deprecated. Dockware (dockware.io) ist für Entwicklung beliebt, aber nicht für Produktion geeignet.
Produktions-Stack: Docker Compose
services:
shopware:
build: .
environment:
- APP_ENV=prod
- APP_SECRET=${APP_SECRET}
- DATABASE_URL=mysql://shopware:${DB_PASSWORD}@db:3306/shopware
- OPENSEARCH_URL=http://opensearch:9200
- SHOPWARE_ES_ENABLED=1
- SHOPWARE_ES_INDEXING_ENABLED=1
- REDIS_CACHE_URL=redis://redis:6379/0
- REDIS_SESSION_URL=redis://redis:6379/1
- TRUSTED_PROXIES=REMOTE_ADDR
depends_on:
- db
- redis
- opensearch
restart: unless-stopped
db:
image: mariadb:10.11
environment:
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
- MYSQL_DATABASE=shopware
- MYSQL_USER=shopware
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
- db-data:/var/lib/mysql
command: >
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--innodb-buffer-pool-size=512M
restart: unless-stopped
redis:
image: valkey/valkey:8-alpine
volumes:
- redis-data:/data
restart: unless-stopped
opensearch:
image: opensearchproject/opensearch:2
environment:
- discovery.type=single-node
- plugins.security.disabled=true
- OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m
volumes:
- os-data:/usr/share/opensearch/data
restart: unless-stopped
worker:
build: .
command: php bin/console messenger:consume async low_priority --time-limit=300
environment:
- APP_ENV=prod
- DATABASE_URL=mysql://shopware:${DB_PASSWORD}@db:3306/shopware
depends_on:
- db
- redis
restart: unless-stopped
volumes:
db-data:
redis-data:
os-data:
Wichtige Hinweise zum Stack
- TRUSTED_PROXIES: Zwingend setzen, wenn Shopware hinter Traefik oder einem anderen Reverse Proxy läuft. Ohne diese Einstellung erkennt Shopware HTTPS nicht korrekt
- Worker-Container: Shopware nutzt Symfony Messenger für asynchrone Aufgaben (E-Mails, Imports, Indexierung). Ohne Worker bleiben diese Aufgaben in der Queue hängen
- Valkey statt Redis: Shopware 6.7 nutzt in eigenen Benchmarks Valkey — den Open-Source-Fork von Redis
OpenSearch: Pflicht für Performance
Seit Shopware 6.6 ist OpenSearch der empfohlene Such-Backend. Elasticsearch funktioniert noch (ab 7.8+), aber die Advanced Search 2.0 ist nicht mehr mit Elasticsearch kompatibel.
Ohne OpenSearch durchsucht Shopware den Katalog per SQL-Queries — bei großen Katalogen (5.000+ Produkte) werden Such- und Kategorieseiten spürbar langsam. Mit OpenSearch bleiben Antwortzeiten unter 100 ms.
Performance-Tuning
Shopware 6.7 Benchmarks zeigen dramatische Verbesserungen mit Caching:
- +108 % mehr Bestellungen pro Sekunde mit Varnish + Valkey
- -85 % geringere Latenz im Vergleich zu ohne Caching
Varnish als HTTP-Cache
Für Shops mit hohem Traffic ist Varnish vor Shopware der größte Performance-Hebel. Shopware liefert eine eigene VCL-Konfiguration mit. Der Varnish-Container sitzt zwischen Traefik und dem Shopware-Container.
Weitere Optimierungen
- OPcache: Muss aktiviert sein (
opcache.memory_consumption=256,opcache.max_accelerated_files=20000) - InnoDB Buffer Pool: Auf 50–70 % des verfügbaren RAM setzen
- Redis/Valkey für Sessions: File-basierte Sessions sind ein Performance-Killer unter Last
- HTTP/2 Push: FrankenPHP unterstützt Early Hints für schnelleres Laden kritischer Assets
Typische Fallstricke
TRUSTED_PROXIES nicht gesetzt
Symptom: Mixed Content Warnings, HTTPS-Redirects funktionieren nicht. Lösung: TRUSTED_PROXIES=REMOTE_ADDR oder die IP des Reverse Proxy setzen.
Worker vergessen
Symptom: E-Mails werden nicht versendet, Produktimporte bleiben hängen. Lösung: Separaten Worker-Container mit messenger:consume starten.
memory_limit zu niedrig
Symptom: White screens bei Plugin-Installation oder Composer-Operationen. Lösung: Mindestens 512M, besser 1G für CLI-Operationen.
MySQL 8.0.20/8.0.21
Diese Versionen haben bekannte Bugs, die Shopware betreffen. Nutzen Sie 8.0.22+ oder MariaDB 10.11.
Managed Shopware Hosting
Ein Shopware-6-Stack in Produktion umfasst 4–6 Container (App, DB, Redis, OpenSearch, Worker, optional Varnish), die aufeinander abgestimmt sein müssen. Updates, Backups, Performance-Monitoring und Security-Patches sind ein fortlaufender Aufwand.
Bei netzspitze.tech betreiben wir Ihren Shopware-Stack professionell:
- Kompletter Docker-Stack mit FrankenPHP, OpenSearch und Redis/Valkey
- Automatische Backups (Datenbank + Medien)
- Performance-Monitoring und Alerting
- SSL via Traefik mit automatischer Zertifikatserneuerung
- Staging-Umgebung für sichere Updates
Jetzt Beratungstermin buchen — wir bringen Ihren Shop auf die sichere Infrastruktur.