|
| 1 | +FROM php:8.4.7-fpm-alpine |
| 2 | + |
| 3 | +# Install PHPize packages |
| 4 | +RUN apk add --no-cache --virtual .phpize $PHPIZE_DEPS |
| 5 | + |
| 6 | +# Install Source Packages |
| 7 | +ENV SRC_DEPS="gmp-dev icu-dev" |
| 8 | +RUN apk add --no-cache --virtual .source $SRC_DEPS |
| 9 | + |
| 10 | +# Install Binary Packages |
| 11 | +ENV BIN_DEPS="gmp git icu nginx" |
| 12 | +RUN apk add --no-cache --virtual .binary $BIN_DEPS |
| 13 | + |
| 14 | +RUN docker-php-ext-install opcache |
| 15 | + |
| 16 | +# Delete PHPize packages |
| 17 | +RUN apk del --no-network --no-cache --purge .phpize |
| 18 | + |
| 19 | +# Delete Source packages |
| 20 | +RUN apk del --no-network --no-cache --purge .source |
| 21 | + |
| 22 | +# Remove files |
| 23 | +RUN rm -rf /tmp/pear |
| 24 | +RUN rm -rf ~/.pearrc |
| 25 | +RUN rm -rf /var/cache/apk/* |
| 26 | + |
| 27 | +# Install Composer |
| 28 | +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer |
| 29 | + |
| 30 | +# Copy files |
| 31 | +WORKDIR /var/www/html |
| 32 | +COPY . . |
| 33 | +RUN mv nginx.conf /etc/nginx/http.d/default.conf |
| 34 | + |
| 35 | +# Install project using Composer |
| 36 | +RUN --mount=type=cache,target=/root/.composer composer install --no-interaction --optimize-autoloader --no-dev |
| 37 | + |
| 38 | +# Change permissions |
| 39 | +RUN chown -R www-data:www-data storage/ |
| 40 | + |
| 41 | +# Setup Process Manager |
| 42 | +RUN echo "pm = ondemand" >> /usr/local/etc/php-fpm.d/zz-docker.conf |
| 43 | +RUN echo "pm.process_idle_timeout = 10s" >> /usr/local/etc/php-fpm.d/zz-docker.conf |
| 44 | + |
| 45 | +# Setup PHP |
| 46 | +RUN mv php.ini /usr/local/etc/php/conf.d/ |
| 47 | + |
| 48 | +# Setup Opcache |
| 49 | +RUN mv opcache.ini /usr/local/etc/php/conf.d/ |
| 50 | + |
| 51 | +# Setup CRON |
| 52 | +RUN echo -e "*\t*\t*\t*\t*\tcd /var/www/html && php artisan schedule:run >> /dev/null 2>&1" >> /var/spool/cron/crontabs/root |
| 53 | + |
| 54 | +VOLUME /var/www/html/storage/framework/cache/data |
| 55 | + |
| 56 | +# Cache project and Start PHP-FPM and NGINX |
| 57 | +CMD php artisan optimize; php artisan event:cache; php artisan view:cache; sh -c "php artisan queue:work &"; n crond; nginx -g "daemon off;" |
0 commit comments