Чтобы запустить PHP-FPM в Docker после компиляции и установки через `make install`, вам нужно создать соответствующий Dockerfile, который будет учитывать все этапы: установку зависимостей, компиляцию, настройку и старт сервиса.
Ниже представлен пример того, как может выглядеть Dockerfile для установки и запуска PHP 5.4-FPM:
```Dockerfile
# Используем образ на базе дистрибутива, который предпочтительнее
FROM debian:bullseye
# Устанавливаем необходимые зависимости для компиляции PHP
RUN apt-get update && apt-get install -y \
autoconf \
build-essential \
libxml2-dev \
libcurl4-openssl-dev \
libjpeg-dev \
libpng-dev \
libxpm-dev \
libfreetype6-dev \
libmysqlclient-dev \
libpq-dev \
libicu-dev \
libmcrypt-dev \
libreadline-dev \
libfpm-helper \
wget
# Скачиваем исходный код PHP 5.4
RUN wget https://www.php.net/distributions/php-5.4.45.tar.gz && \
tar -xf php-5.4.45.tar.gz && \
rm php-5.4.45.tar.gz
# Компилируем PHP с необходимыми опциями
WORKDIR /php-5.4.45
RUN ./configure \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
... # Дополнительные опции конфигурации по необходимости
RUN make && make install
# Копируем конфигурационные файлы (можно подготовить на основе шаблонов из скачанных исходников)
COPY ./php-fpm.conf /usr/local/etc/
COPY ./www.conf /usr/local/etc/php-fpm.d/
# Копируем скрипт запуска сервиса
COPY ./start-php-fpm.sh /usr/local/bin/start-php-fpm
RUN chmod +x /usr/local/bin/start-php-fpm
# Открываем порт для FPM
EXPOSE 9000
# Запускаем PHP-FPM при старте контейнера
CMD ["start-php-fpm"]
```
`start-php-fpm.sh` скрипт будет запускать PHP-FPM и должен выглядеть примерно так:
```bash
#!/bin/bash
# Останавливаем PHP-FPM, если он уже запущен (на случай перезапуска контейнера)
kill -QUIT $(pidof php-fpm) 2>/dev/null
# Запускаем PHP-FPM
/usr/local/sbin/php-fpm --nodaemonize --fpm-config /usr/local/etc/php-fpm.conf
```
Не забудьте создать файлы конфигурации `php-fpm.conf` и `www.conf` на базе дистрибутивных и отредактировать их под вашу ситуацию.
Далее, вы можете построить контейнер командой `docker build` и запустить его с использованием `docker run` команд.
Этот пример не идеален, и должен быть адаптирован под конкретные условия вашего проекта. Важно также отметить, что работа с устаревшими версиями PHP может привести к проблемам безопасности и совместимости.