J'essaie de dockeriser une application PHP Laravel. J'utilise PHP et composer des images pour y parvenir. Cependant, lorsque j'exécute composer install, j'installe tous les packages mais j'obtiens ensuite cette erreur :
/app/vendor不存在,无法创建。
Je veux que Composer crée le répertoire /vendor ! Cela pourrait-il être un problème d'autorisations ?
Voici mon Dockerfile :
FROM php:7.4.3-cli # Install system dependencies RUN apt-get update && apt-get install -y git curl libpng-dev libonig-dev libxml2-dev zip unzip # Clear cache RUN apt-get cl ean && rm -rf /var/lib/apt/lists/* # Install PHP extensions RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd COPY --from=composer:2.4.4 /usr/bin/composer /usr/local/bin/composer # Set working directory WORKDIR /app COPY . . # Add a new user "john" with user id 8877 RUN useradd -u 8877 john # Change to non-root privilege USER john RUN composer install
J'ai créé un utilisateur avec un identifiant arbitraire car exécuter composer install en tant que sécurité root est une mauvaise pratique.
J'ai pu résoudre le problème en apportant quelques modifications au Dockerfile :