Error correction and preparation of the project for initial deployment

This commit is contained in:
F4ilji
2025-08-11 16:12:10 +05:00
parent 8b2f9e99f0
commit e62b442991
9 changed files with 109 additions and 30 deletions
+37 -11
View File
@@ -1,6 +1,11 @@
FROM php:8.2-fpm
# Устанавливаем рабочую директорию до установки системных зависимостей,
# чтобы все последующие команды выполнялись в правильном контексте.
WORKDIR /var/www
# Установка системных зависимостей
# В одном RUN-слое, чтобы уменьшить количество слоев в образе.
RUN apt-get update && apt-get install -y \
apt-utils \
libpq-dev \
@@ -21,15 +26,17 @@ RUN apt-get update && apt-get install -y \
libicu-dev \
g++ \
default-mysql-client \
&& docker-php-ext-configure gd --with-webp --with-jpeg \
&& docker-php-ext-install gd pdo_mysql bcmath zip intl \
# Установка Node.js (актуальная LTS-версия 18)
&& curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
&& apt-get install -y nodejs \
&& npm install -g npm \
# Очистка кэша, чтобы уменьшить размер образа
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Установка Node.js (актуальная LTS-версия)
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
&& apt-get install -y nodejs \
&& npm install -g npm
# Установка расширений PHP
RUN docker-php-ext-configure gd --with-webp --with-jpeg \
&& docker-php-ext-install gd pdo_mysql bcmath zip intl
# Установка Composer
ENV COMPOSER_ALLOW_SUPERUSER=1
@@ -37,6 +44,28 @@ RUN curl -sS https://getcomposer.org/installer | php -- \
--filename=composer \
--install-dir=/usr/local/bin
# Создаём необходимые поддиректории внутри 'storage'
# Шаг 5: Копирование файлов Composer для кэширования
COPY composer.json composer.lock ./
# Шаг 6: Установка зависимостей
RUN composer install --no-dev --optimize-autoloader --no-interaction
# Шаг 7: Копирование всего остального кода приложения
# В этот момент директории 'storage' и 'bootstrap/cache' появятся в образе.
COPY . .
# Шаг 8: Создание необходимых поддиректорий
# Эта команда создаст поддиректории внутри 'storage', которые могут отсутствовать.
RUN mkdir -p storage/framework/views storage/framework/sessions storage/framework/cache storage/logs
# Шаг 9: Установка прав доступа
# Теперь эта команда выполнится успешно, так как директории уже существуют.
RUN chown -R www-data:www-data storage bootstrap/cache \
&& chmod -R 775 storage bootstrap/cache
# Копирование конфигураций
COPY ./_docker/app/php.ini /usr/local/etc/php/conf.d/php.ini
COPY ./_docker/supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
@@ -47,12 +76,9 @@ RUN chmod 0644 /etc/cron.d/laravel-cron \
&& crontab /etc/cron.d/laravel-cron \
&& touch /var/log/cron.log
# Рабочая директория
WORKDIR /var/www
# Запуск Supervisor (управляет PHP-FPM и Inertia SSR)
# Запуск Supervisor (управляет PHP-FPM, Inertia SSR, и worker-ами)
CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
# Открываем порты
EXPOSE 9000
EXPOSE 13714
EXPOSE 13714