Composer в Docker
Composer ставит библиотеки PHP
и в образ попадает как отдельная программа.
Его не ставят пакетным менеджером
хоста при каждом запуске:
бинарник копируют из официального
образа composer:2
на этапе docker build.
Многоступенчатый шаг
COPY --from=...
берёт только файл composer,
не таща лишние слои.
Шаблон на базе FPM:
FROM php:8.5-fpm
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
Сервис app
собирается из папки с Dockerfile.
Порт и nginx для проверки
не нужны.
Файл compose.yaml:
services:
app:
build: .
После сборки и подъёма в фоне команда версии должна напечатать номер Composer словами в терминале. Сборка и проверка:
docker compose up -d --build
docker compose exec app composer --version
Строка ответа подтверждает,
что программа на месте
и готова читать composer.json
и ставить пакеты.
Конкретное число версии
в урок не подставляем -
его даёт живая команда.
Соберите сервис pkg на php:8.5-fpm с бинарником Composer в образе и получите строку версии изнутри контейнера.
Запишите, что команда версии выводит в терминале, не выдумывая номер.