
Shopware 6: Tipps und Tricks für die lokale Entwicklung
- Igor Ermentraut
- Shopware , Dev ops
- 18. September 2024
Wir haben eine Liste nützlicher Tipps und Tricks zusammengestellt, um deine lokale Entwicklungsumgebung für die professionelle Shopware 6-Entwicklung zu optimieren und/oder zu nutzen:
Fehlende Bilder in Ihrer lokalen Umgebung beheben
Du kannst alle Bilder vom Produktionsserver herunterladen (und/oder synchronisieren), aber in den meisten Fällen möchtest du das nicht. Du kannst Shopware einfach anweisen, die URL der Produktionsumgebung voranzustellen. Alle Bilder werden sichtbar und Sie müssen sie nicht manuell herunterladen:
config/packages/dev/shopware.yaml:
---
shopware:
filesystem:
public:
type: "local"
url: "https://www.example.com/" # Ersetzen Sie dies durch die korrekte URL
config:
root: "%kernel.project_dir%/public"
Devcontainer
Nützliche Software-Pakete
"features": {
"ghcr.io/devcontainers/features/sshd:1": {},
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {
"packages": [
"vim",
"curl"
]
},
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"moby": true,
"azureDnsAutoDetection": true,
"installDockerBuildx": true,
"installDockerComposeSwitch": true,
"version": "latest",
"dockerDashComposeVersion": "latest"
},
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": true,
"configureZshAsDefaultShell": true,
"installOhMyZsh": true
},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers-contrib/features/pre-commit:2": {},
"ghcr.io/devcontainers/features/node:1": {
"version": "16"
},
"ghcr.io/shyim/devcontainers-features/shopware-cli:0": {},
"ghcr.io/nils-geistmann/devcontainers-features/zsh:0": {
"setLocale": true,
"theme": "agnoster",
"plugins": "ansible colorize dirhistory gh git docker docker-compose",
"desiredLocale": "de_DE.UTF-8 UTF-8"
}
},
Nützliche Erweiterungen
"customizations": {
"vscode": {
"extensions": [
"GitHub.copilot",
"GitHub.vscode-pull-request-github",
"GitHub.vscode-github-actions",
"xdebug.php-debug",
"DEVSENSE.phptools-vscode",
"DEVSENSE.composer-php-vscode",
"elagil.pre-commit-helper",
"esbenp.prettier-vscode",
"redhat.vscode-yaml",
"redhat.vscode-xml",
"DavidAnson.vscode-markdownlint",
"sibiraj-s.vscode-scss-formatter",
"mikestead.dotenv",
"EditorConfig.EditorConfig",
"marabesi.php-import-checker",
"fabiospampinato.vscode-statusbar-debugger",
"formulahendry.auto-close-tag",
"formulahendry.auto-rename-tag",
"ms-vsliveshare.vsliveshare",
"whatwedo.twig",
"cweijan.vscode-mysql-client2",
"ms-azuretools.vscode-docker"
]
}
},
Verbindung mit Devcontainer über SSH
Zuerst musst du sicherstellen, dass dieses Feature ghcr.io/devcontainers/features/sshd:1 im Features-Abschnitt in .devcontainer/devcontainer.json enthalten ist. Dann musst du das Passwort für den vscode-Benutzer setzen. Öffne das Terminal in deinem Devcontainer und führe diesen Befehl aus, um das Passwort ohne Interaktion auf `password` (neu) zu setzen:
printf "password\npassword" | sudo passwd ${whoami}Dann kannst du dich außerhalb deines Devcontainers per SSH verbinden:
ssh vscode@localhost -p2222In diesem Beispiel gehen wir davon aus, dass du den Standardbenutzer `vscode` in deinem Devcontainer verwendest. Wenn du mehrere Devcontainer hast, kann sich der Port unterscheiden.
Commits zu github.com innerhalb des Devcontainers pushen
- Erstelle einen neuen Ordner sudo mkdir -vp /home/${USER:-vscode}/.ssh
- Setze die richtigen Berechtigungen mit sudo chown -R ${USER:-vscode}:${USER:-vscode} /home/${USER:-vscode}/.ssh
Erstelle eine Konfigurationsdatei im neuen Ordner mit
touch /home/${USER:-vscode}/.ssh/config
und fügen Sie dann diese Zeilen hinzu:
Host github.com Hostname ssh.github.com User git Port 22 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa StrictHostKeyChecking no UserKnownHostsFile /dev/null Die SSH-Schlüsselpaare sind noch nicht im Devcontainer verfügbar. Du hast zwei Möglichkeiten:
- a) Sie können neue Schlüsselpaare mit `ssh-keygen` erstellen
- b) (empfohlen) Sie können einfach Ihre vorhandenen Schlüsselpaare im Container einbinden. Alles, was Sie tun müssen, ist, einen neuen Abschnitt in .devcontainer/devcontainer.json hinzuzufügen und dann Ihren Devcontainer neu zu erstellen:
"mounts": [ "source=${localEnv:HOME}/.ssh/id_rsa,target=/home/vscode/.ssh/id_rsa,type=bind,consistency=cached,readonly", "source=${localEnv:HOME}/.ssh/id_rsa.pub,target=/home/vscode/.ssh/id_rsa.pub,type=bind,consistency=cached,readonly" ]
Shopware hinter einem Reverse-Proxy betreiben
In einigen Fällen möchtest du einen Reverse-Proxy (z.B. Traefik) vor deinen Shopware-Umgebungen betreiben. Füge diese Umgebungsvariable zu deiner .env oder .env.local hinzu, um internen Verkehr über http:// anstelle von https:// zuzulassen, sodass du kein SSL-Termination durchführen musst:
TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR
