Jalankan pemasangan komposer dalam Dockerfile
P粉545682500
P粉545682500 2024-01-01 18:54:53
0
1
506

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粉545682500
P粉545682500

membalas semua(1)
P粉471207302

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan