FROM php:8.3-fpm # ---- system & PHP extensions ------------------------------------------------- RUN apt-get update && apt-get install -y --no-install-recommends \ procps nginx gettext logrotate \ git unzip zip curl ca-certificates supervisor cron nano \ libpng-dev libjpeg62-turbo-dev libfreetype6-dev \ libonig-dev libxml2-dev libzip-dev libpq-dev libicu-dev libxslt-dev \ libsqlite3-dev sqlite3 default-mysql-client \ && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ && apt-get install -y --no-install-recommends nodejs \ && npm install -g npm \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd pdo_mysql zip bcmath intl xsl pcntl sockets opcache\ && pecl install redis && docker-php-ext-enable redis \ && apt-get clean && rm -rf /var/lib/apt/lists/* # ---- composer --------------------------------------------------------------- COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # ---- config files ----------------------------------------------------------- COPY docker/php/php.ini /usr/local/etc/php/conf.d/custom-php.ini COPY docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY docker/entrypoint.sh /entrypoint.sh COPY docker/entrypoint.git.sh /entrypoint.git.sh COPY docker/nginx/default.conf.template /etc/nginx/templates/default.conf.template COPY docker/logrotate/laravel /etc/logrotate.d/app/laravel.conf RUN chmod 644 /etc/logrotate.d/app/laravel.conf WORKDIR /var/www RUN chmod +x /entrypoint.sh /entrypoint.git.sh ENTRYPOINT ["/entrypoint.sh"]