Rumah > Soal Jawab > teks badan
Saya cuba melabuhkan aplikasi laravel PHP. Saya menggunakan PHP dan imej komposer untuk mencapai ini. Walau bagaimanapun, apabila saya menjalankan composer install, saya memasang semua pakej tetapi kemudian mendapat ralat ini:
/app/vendor不存在,无法创建。
Saya mahu Komposer mencipta direktori /vendor! Bolehkah ini menjadi isu kebenaran?
Ini ialah Dockerfile saya:
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
Saya mencipta pengguna dengan ID sewenang-wenangnya kerana menjalankan pemasangan komposer kerana keselamatan akar adalah amalan yang tidak baik.
P粉4712073022024-01-02 16:30:20
Saya dapat menyelesaikan masalah dengan membuat beberapa perubahan pada 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 clean && 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 # Add a new user "john" with user id 8877 RUN useradd -u 8877 john # Set working directory WORKDIR /app COPY . . RUN chmod -R 775 /app RUN chown -R john:john /app # Change to non-root privilege USER john RUN composer install --no-scripts --no-plugins