Shopware 6: Tipps und Tricks für die lokale Entwicklung

Shopware 6: Tipps und Tricks für die lokale Entwicklung

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 -p2222

In 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

  1. Erstelle einen neuen Ordner sudo mkdir -vp /home/${USER:-vscode}/.ssh
  2. 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
  3. 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
comments powered by Disqus

Ähnliche Artikel

Rundeck: Eine Einführung in die Automatisierungsplattform für IT-Operations

Rundeck: Eine Einführung in die Automatisierungsplattform für IT-Operations

Rundeck ist eine Open-Source-Plattform für die Automatisierung und das Management von IT-Operations. In diesem Artikel erfährst du, was Rundeck ist, welche Vorteile es bietet, welche Hauptfunktionen es hat und wie es in der Praxis eingesetzt werden kann…

Weiterlesen
GitHub Self-Hosted Runner: Was ist das und warum sollte man es nutzen?

GitHub Self-Hosted Runner: Was ist das und warum sollte man es nutzen?

GitHub Actions ist ein leistungsstarkes Tool für automatisierte Workflows direkt in GitHub. Die sogenannten Runner sind die Maschinen, auf denen die Workflows laufen. GitHub bietet zwei Typen an: gehostete Runner und self-hosted Runner. In diesem Artikel erfährst du, was Self-Hosted Runner…

Weiterlesen