changes Dockerfile
This commit is contained in:
+9
-26
@@ -1,11 +1,9 @@
|
|||||||
FROM php:8.2-fpm
|
FROM php:8.2-fpm
|
||||||
|
|
||||||
# Устанавливаем рабочую директорию до установки системных зависимостей,
|
# Устанавливаем рабочую директорию
|
||||||
# чтобы все последующие команды выполнялись в правильном контексте.
|
|
||||||
WORKDIR /var/www
|
WORKDIR /var/www
|
||||||
|
|
||||||
# Установка системных зависимостей
|
# Установка системных зависимостей и инструментов в одном слое
|
||||||
# В одном RUN-слое, чтобы уменьшить количество слоев в образе.
|
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
apt-utils \
|
apt-utils \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
@@ -30,13 +28,12 @@ RUN apt-get update && apt-get install -y \
|
|||||||
&& curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
|
&& curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
|
||||||
&& apt-get install -y nodejs \
|
&& apt-get install -y nodejs \
|
||||||
&& npm install -g npm \
|
&& npm install -g npm \
|
||||||
# Очистка кэша, чтобы уменьшить размер образа
|
# Очистка кэша для уменьшения размера образа
|
||||||
&& apt-get clean \
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
||||||
|
|
||||||
# Установка расширений PHP
|
# Установка расширений PHP
|
||||||
RUN docker-php-ext-configure gd --with-webp --with-jpeg \
|
RUN docker-php-ext-configure gd --with-webp --with-jpeg \
|
||||||
&& docker-php-ext-install gd pdo_mysql bcmath zip intl
|
&& docker-php-ext-install -j$(nproc) gd pdo_mysql bcmath zip intl
|
||||||
|
|
||||||
# Установка Composer
|
# Установка Composer
|
||||||
ENV COMPOSER_ALLOW_SUPERUSER=1
|
ENV COMPOSER_ALLOW_SUPERUSER=1
|
||||||
@@ -44,29 +41,15 @@ RUN curl -sS https://getcomposer.org/installer | php -- \
|
|||||||
--filename=composer \
|
--filename=composer \
|
||||||
--install-dir=/usr/local/bin
|
--install-dir=/usr/local/bin
|
||||||
|
|
||||||
# Создаём необходимые поддиректории внутри 'storage'
|
|
||||||
# Шаг 5: Копирование файлов Composer для кэширования
|
|
||||||
COPY composer.json composer.lock ./
|
|
||||||
|
|
||||||
# Шаг 6: Установка зависимостей
|
# Создание необходимых директорий для Laravel
|
||||||
RUN composer install --no-dev --optimize-autoloader --no-interaction
|
RUN mkdir -p storage/framework/views storage/framework/sessions storage/framework/cache storage/logs bootstrap/cache
|
||||||
|
|
||||||
# Шаг 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 \
|
RUN chown -R www-data:www-data storage bootstrap/cache \
|
||||||
&& chmod -R 775 storage bootstrap/cache
|
&& chmod -R 775 storage bootstrap/cache
|
||||||
|
|
||||||
|
# Копирование конфигураций PHP и Supervisor
|
||||||
|
|
||||||
# Копирование конфигураций
|
|
||||||
COPY ./_docker/app/php.ini /usr/local/etc/php/conf.d/php.ini
|
COPY ./_docker/app/php.ini /usr/local/etc/php/conf.d/php.ini
|
||||||
COPY ./_docker/supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
COPY ./_docker/supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user