Rumah  >  Soal Jawab  >  teks badan

Jalankan pemasangan komposer dalam Dockerfile

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粉545682500P粉545682500266 hari yang lalu460

membalas semua(1)saya akan balas

  • P粉471207302

    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

    balas
    0
  • Batalbalas