|
| 1 | +# Webserver |
| 2 | +FROM php:8.2-fpm-bookworm AS php |
| 3 | + |
| 4 | +# Mysql init |
| 5 | +COPY ./mysql/init.sql /docker-entrypoint-initdb.d/init.sql |
| 6 | + |
| 7 | +# Env |
| 8 | +ENV PHP_OPCACHE_ENABLE=1 |
| 9 | +ENV PHP_OPCACHE_ENABLE_CLI=0 |
| 10 | +ENV PHP_OPCACHE_VALIDATE_TIMESTAMP=1 |
| 11 | +ENV PHP_OPCACHE_REVALIDATE_FREQ=1 |
| 12 | + |
| 13 | +# RUN usermod -u 1000 www-data |
| 14 | + |
| 15 | +# Apt https |
| 16 | +RUN apt-get update -y |
| 17 | +RUN apt-get install apt-transport-https -y |
| 18 | + |
| 19 | +# Libs |
| 20 | +RUN apt-get install -y unzip zip nano libpq-dev libcurl4-gnutls-dev nginx |
| 21 | +RUN apt-get install -y libicu-dev libmariadb-dev zlib1g-dev libwebp-dev libxpm-dev libjpeg-dev libpng-dev libjpeg62-turbo-dev libfreetype6-dev |
| 22 | + |
| 23 | +# Extensions php |
| 24 | +RUN docker-php-ext-install pdo pdo_mysql bcmath curl opcache intl gettext gd |
| 25 | +RUN docker-php-ext-configure gd --enable-gd --with-webp --with-xpm --with-jpeg --with-freetype |
| 26 | +RUN docker-php-ext-install -j$(nproc) gd |
| 27 | + |
| 28 | +# Redis |
| 29 | +RUN pecl install redis-5.3.7 \ |
| 30 | + && pecl install xdebug-3.2.1 \ |
| 31 | + && docker-php-ext-enable redis xdebug |
| 32 | + |
| 33 | +# Memcached |
| 34 | +RUN apt-get update && apt-get install -y libmemcached-dev libssl-dev zlib1g-dev \ |
| 35 | + && pecl install memcached-3.2.0 \ |
| 36 | + && docker-php-ext-enable memcached |
| 37 | + |
| 38 | +# Disable default server |
| 39 | +RUN rm -rf /etc/nginx/sites-enabled/default |
| 40 | + |
| 41 | +WORKDIR /var/www/html |
| 42 | + |
| 43 | +COPY --chown=www-data:www-data --chmod=2775 ./webapp /var/www/html |
| 44 | + |
| 45 | +COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf |
| 46 | + |
| 47 | +COPY ./php/www.conf /usr/local/etc/php-fpm.d/www.conf |
| 48 | + |
| 49 | +COPY ./php/php.ini /usr/local/etc/php/php.ini |
| 50 | + |
| 51 | +RUN nginx -t |
| 52 | + |
| 53 | +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer |
| 54 | + |
| 55 | +RUN php artisan cache:clear |
| 56 | +RUN php artisan config:clear |
| 57 | +RUN php artisan migrate |
| 58 | +RUN php artisan storage:link |
| 59 | + |
| 60 | +COPY --chown=www-data:www-data --chmod=2775 ./entrypoint.sh /var/www/entrypoint.sh |
| 61 | + |
| 62 | +RUN chmod +x /var/www/entrypoint.sh |
| 63 | + |
| 64 | +ENTRYPOINT [ "/var/www/entrypoint.sh" ] |
0 commit comments