I am trying to build a centos server with php on it I am using centos:7 image and in it install php dependencies. But that doesn’t seem to work as every time, the build is successful but just after that the container shuts down.
Here is my docker-compose.yml
version: "3.7"
services:
server:
build:
context: ./.docker
volumes:
- ./src/:/opt/app-root/src
ports:
- "9000:9000"
networks:
default:
external:
name: network_rp
And the Dockerfile (found in .docker/Dokerfile):
FROM centos:7
# Ajout des repo utiles
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
&& rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
&& rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# Installation des packages
RUN yum-config-manager --enable remi-php73
&& yum install -y git zip unzip
php php-intl php-opcache php-mbstring php-dom
php-pdo php-mysqlnd php-pecl-xdebug php-soap
php-bcmath php-zip php-ast php-fpm
RUN yum update -y
# Parametrage PHP
RUN echo 'date.timezone=Europe/Paris' > /etc/php.d/00-docker-php-date-timezone.ini
# Installation composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
# xdebug.ini. Activer les directives selon les besoins
RUN echo 'xdebug.remote_enable=1' >> /etc/php.d/15-xdebug.ini
&& echo 'xdebug.remote_connect_back=0' >> /etc/php.d/15-xdebug.ini
&& echo "xdebug.remote_host=127.0.0.1" >> /etc/php.d/15-xdebug.ini
&& echo 'xdebug.remote_autostart=1' >> /etc/php.d/15-xdebug.ini
&& echo 'xdebug.remote_log=/opt/app-root/src/var/logs/xdebug.log' >> /etc/php.d/15-xdebug.ini
# Vide le dossier temporaire
RUN rm -rf /tmp/*
WORKDIR /opt/app-root/src
CMD ["php-fpm"]
EXPOSE 9000
Any ideas ?
Advertisement
Answer
There are 2 problems here:
1. /var/run/php-fpm/ was missing, then you will encountered next error:
[18-Mar-2021 06:12:09] ERROR: Unable to create the PID file (/run/php-fpm/php-fpm.pid).: No such file or directory (2)
[18-Mar-2021 06:12:09] ERROR: FPM initialization failed
So, you need add next line before CMD ["php-fpm"]:
RUN mkdir -p /var/run/php-fpm
2. You need make php-fpm run in foreground, using next, see example here:
CMD [ "php-fpm", "-F" ]