Lenkstockschalter selbst getauscht – Tipp: vor Airbag-Ausbau Batterie abklemmen, sonst SRS-Fehler (nur in Werkstatt löschbar)
Lenkstockschalter selbst getauscht – Tipp: vor Airbag-Ausbau Batterie abklemmen, sonst SRS-Fehler (nur in Werkstatt löschbar)
Öffnen des Gehäuses
Solider E‑Kleinwagen mit gutem Fahrgefühl, aber deutlichen Software-Macken (u. a. kurze Reichweite im Winter ~200 km, fehlerhafte Parksensoren, sporadische Fehlermeldungen/Neustarts, hakendes Lenkradschloss, Klima-/Kofferraum-Bugs) – Gesamturteil: befriedigend.
Blinken vor dem Abbigen ist wichtig
Freiwillige Selbstverpflichtung - für mich nur eine Ausrede
Wenn man als Team einen lokalen Entwicklungsworkspace für PHP Projekte mit Docker betreibt, hat man, wenn mehrere Betriebssysteme eingesetzt werden, das Problem, dass nicht auf allen Betriebssystemen die Dateirechte ignoriert werden (was ja eigentlich richtig ist). Das führt unter Linux z.B. dazu, wenn man in einen Docker container via docker-compose exec geht und dort eine Datei anlegt, diese als Root oder als der Prozessuser der als Standard definiert wird (z.b www-data), im Hostdateisystem angelegt wird.
Um das Problem unter Linux zu umgehen, muss man sich im Container mit derselben UserID (UID) bewegen, die man auch auf dem Host-Bewerbeitssystem hat (üblicherweise für den ersten „normalen“ Benutzer eines Systems die UID 1000). Allerdings kann es natürlich auch eine andere UID sein, und man muss daher die UID flexibel übergeben werden.
Um das zu erreichen, wird der im Container verwendete www-data user auf die UID des wirklichen Benutzers umgebogen. Die aktuelle UID wird als Variable an docker compose übergeben.
Ich habe in diesem Beispiel alle weiteren Einstellungen für z.B. ssh-key Import, composer caching und Xdebug entfernt, um hier nur das Thema Schreibrechte zu behandeln.
services:
php-fpm:
build:
context: php-fpm
args:
USER_ID: "${UID}"
volumes:
- ./:/app
depends_on:
- database
working_dir: /app
FROM php:8.2-fpm
ARG USER_ID=0
ENV USER_ID ${USER_ID}
RUN echo USER_ID=${USER_ID}
RUN mkdir /var/www/.composer && chown $USER_ID:$USER_ID /var/www/.composer
RUN usermod -u $USER_ID www-data
USER $USER_ID
export UID
docker compose -f docker-compose.yml -p workspace up
docker compose -f docker-compose.yml -p workspace exec php-fpm
Beispiel für ein docker-compose.yml mit einem fpm container, welcher auch als entrypoint verwendet wird um z.B. `composer up` auszuführen.
Article relase date: / Last update: