FROM php:7.4-fpm # Copy composer.lock and composer.json COPY composer.lock composer.json /var/www/ # Set working directory WORKDIR /var/www # Install dependencies RUN apt-get update && apt-get install -y \ build-essential \ postgresql-server-dev-11 \ libpng-dev \ libjpeg62-turbo-dev \ libfreetype6-dev \ locales \ zip \ jpegoptim optipng pngquant gifsicle \ vim \ unzip \ git \ curl && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Install extensions RUN docker-php-ext-install pdo pdo_pgsql exif pcntl && \ docker-php-ext-configure gd --with-jpeg=/usr/include/ \ --with-freetype=/usr/include/ && \ docker-php-ext-install gd # Install composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # Add user for laravel application RUN groupadd -g 1000 www && \ useradd -u 1000 -ms /bin/bash -g www www && \ chown 1000:1000 /var/www # Copy existing application directory contents with correct permissions COPY --chown=1000:1000 . /var/www # Copy PHP configuration COPY ./php/local.ini /usr/local/etc/php/conf.d/local.ini # Use composer to install dependencies RUN composer install # Change current user to www USER www # Expose port 9000 and start php-fpm server EXPOSE 9000 CMD ["./start.sh"]