WSL 2 PERMISSION FIXER
Verhindere schreibgeschützte Dateien in VS Code unter Windows/WSL2. Generiere Dockerfiles mit integriertem User-Mapping.
WSL User-Details
id -u (meistens 1000).id -g (meistens 1000).# Dockerfile für lokale WSL 2 Entwicklung (LARAVEL)
FROM php:8.3-fpm-alpine
# System-Abhängigkeiten installieren
RUN apk add --no-cache \
git \
curl \
libpng-dev \
libxml2-dev \
zip \
unzip \
shadow
# PHP Extensions
RUN docker-php-ext-install pdo_mysql bcmath gd
# Composer installieren
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Argumente für Host-User ID und Gruppen ID
# Diese werden aus deiner WSL 2 Umgebung übergeben (z.B. id -u / id -g)
ARG USER_ID=1000
ARG GROUP_ID=1000
ARG USER_NAME=developer
# Benutzer und Gruppe anlegen/anpassen, um Dateirechte-Konflikte zu vermeiden
RUN if getent group ${GROUP_ID}; then \
# Gruppe existiert bereits -> Umbenennen zu USER_NAME
existing_group=$(getent group ${GROUP_ID} | cut -d: -f1) && \
groupmod -n ${USER_NAME} ${existing_group}; \
else \
# Gruppe neu erstellen
groupadd -g ${GROUP_ID} ${USER_NAME}; \
fi && \
useradd -u ${USER_ID} -g ${GROUP_ID} -m -s /bin/sh ${USER_NAME}
# PHP-FPM Konfiguration anpassen, damit FPM unter dem neuen User läuft
RUN sed -i "s/user = www-data/user = ${USER_NAME}/g" /usr/local/etc/php-fpm.d/www.conf && \
sed -i "s/group = www-data/group = ${USER_NAME}/g" /usr/local/etc/php-fpm.d/www.conf
# Arbeitsverzeichnis und Composer Cache-Verzeichnis vorbereiten
WORKDIR /www/wwwroot/project
RUN mkdir -p /home/${USER_NAME}/.composer && \
chown -R ${USER_NAME}:${USER_NAME} /home/${USER_NAME} /www/wwwroot/project
# Standardmäßig als Entwickler-User im Container arbeiten
USER ${USER_NAME}
CMD ["php-fpm"]
Vorschau: Container User Mapping
So verhinderst du "Permission Denied" Fehler dauerhaft
Unter Windows 10/11 greift VS Code über den WSL-Remote-Server auf deine WSL-Verzeichnisse zu. Docker-Container laufen jedoch standardmäßig unter Root.
Warum entstehen Permission Errors?
Wenn du im Container Befehle ausführst (z.B. composer install oder npm install), erzeugt der Root-User im Container Ordner wie vendor oder node_modules. Auf deinem WSL-System gehören diese Dateien nun Root. Dein Windows-Editor hat keine Root-Rechte, weshalb das Editieren fehlschlägt.
Die Lösung: Docker-User UID/GID Mapping
Durch die Übergabe der Host-User-ID (`UID: 1000` und `GID: 1000`) an das Dockerfile weiß Docker beim Builden, dass es den Systemuser innerhalb des Containers exakt so konfigurieren soll. Wenn der Container nun Dateien schreibt, werden sie mit deiner eigenen ID markiert, sodass du sie auf dem Host nahtlos modifizieren kannst.
Dein Webprojekt professionell umsetzen?
Du brauchst professionelle Unterstützung bei deinem Web-Projekt? Wir helfen dir bei der Umsetzung von modernen Layouts, performanten Animationen und maßgeschneiderten Lösungen, damit dein Projekt wirklich glänzt.
Webinteger kontaktieren
Sende uns deine Testergebnisse direkt zu. Wir analysieren dein Projekt im Detail und erstellen dir einen Fahrplan zur Behebung.
Nächster Test: WSL2 Optimizer
Nimm deine URL mit zum nächsten Tool, um deine SEO-Analyse zu vervollständigen und weitere versteckte Fehler aufzudecken.