....
# Устанавливаем Composer из официального образа
# Используем multi-stage build для уменьшения размера
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Устанавливаем рабочую директорию
WORKDIR /var/www/html
# Копируем только необходимые файлы (оптимизация слоев)
# composer.lock может отсутствовать в начале проекта - это нормально
# Сначала копируем только composer.json
COPY composer.json ./
# Устанавливаем зависимости (кэшируется если composer.json не изменился)
# Если composer.lock отсутствует, Composer создаст его автоматически при установке
RUN composer install --no-dev --optimize-autoloader --no-interaction --prefer-dist
...