mirvmon/docker/Dockerfile

43 lines
1.3 KiB
Docker

FROM php:8.3-fpm
# Устанавливаем системные зависимости
RUN apt-get update && apt-get install -y \
libmariadb-dev \
zip \
unzip \
git \
default-mysql-client \
&& docker-php-ext-install pdo pdo_mysql \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Устанавливаем Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
WORKDIR /var/www
# Копируем composer.json и ставим зависимости (кэш слой)
COPY composer.json composer.lock* ./
RUN composer install --no-dev --optimize-autoloader --no-interaction --no-progress 2>/dev/null \
|| composer install --no-dev --optimize-autoloader --no-interaction --no-progress
# Копируем всё приложение
COPY . .
# Создаём директории для кэша и логов
RUN mkdir -p /var/www/var/cache /var/www/var/log \
&& chown -R www-data:www-data /var/www
# Скрипт инициализации
COPY docker/init.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
# Скрипт миграций
COPY docker/migrate.sh /usr/local/bin/migrate.sh
RUN chmod +x /usr/local/bin/migrate.sh
EXPOSE 9000
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["php-fpm"]