John Davidson

docker - PHP-FPM does not start after container creation

0 comments
Message:


I made a Dockerfile, but when I run it and enter the container, the php8.0-fpm service is not running.


How do I make it run at build time? Note that I run the command service php8.0-fpm start in the Dockerfile and even then it is not running.


What should I do for the php8.0-fpm service to start along with the container?


Below is the Dockerfile I made:


FROM ubuntu:jammy

ENV DEBIAN_FRONTEND=noninteractive

# Instalação Apache e PHP

RUN apt-get update && \
apt-get install software-properties-common -y && \
add-apt-repository ppa:ondrej/php -y && \
apt-get update && \
apt-get install -y \
apache2 \
libapache2-mod-php8.0 \
libapache2-mod-php \
php8.0-fpm \
libapache2-mod-fcgid \

# Alteração sequência index

COPY /src/dir.conf /etc/apache2/mods-enabled

# Commitando a nova configuração

RUN service apache2 restart
RUN service php8.0-fpm restart

# Inserindo página info.php

COPY /src/info.php /var/www/html

# Alterando módulos de multiprocessamento

RUN service apache2 stop && \
a2dismod php8.0 && \
a2dismod php8.1 && \
a2dismod mpm_prefork && \
a2enmod mpm_event && \
a2enconf php8.0-fpm && \
a2enmod proxy && \
a2enmod proxy_fcgi && \
service apache2 restart && \
service php8.0-fpm start

# Entrypoint para o conteiner iniciar o Apache

ENTRYPOINT ["apache2ctl", "-D", "FOREGROUND"]


My Answer:
To ensure that the php8.0-fpm service starts along with the container, you can modify your Dockerfile as follows:

1. Remove the lines where you are manually starting the php8.0-fpm service using `service php8.0-fpm start`.

2. Add the following line at the end of your Dockerfile to start the php8.0-fpm service when the container starts:

CMD ["php-fpm8.0", "-F"]

This command will start the php8.0-fpm service in the foreground when the container is launched.

Your modified Dockerfile should look like this:

Dockerfile
FROM ubuntu:jammy

ENV DEBIAN_FRONTEND=noninteractive

# Instalação Apache e PHP

RUN apt-get update && \
apt-get install -y \
software-properties-common \
apache2 \
libapache2-mod-php8.0 \
libapache2-mod-php \
php8.0-fpm \
libapache2-mod-fcgid

# Alteração sequência index

COPY /src/dir.conf /etc/apache2/mods-enabled

# Commitando a nova configuração

RUN service apache2 restart

# Inserindo página info.php

COPY /src/info.php /var/www/html

# Alterando módulos de multiprocessamento

RUN service apache2 stop && \
a2dismod php8.0 && \
a2dismod php8.1 && \
a2dismod mpm_prefork && \
a2enmod mpm_event && \
a2enconf php8.0-fpm && \
a2enmod proxy && \
a2enmod proxy_fcgi && \
service apache2 restart

# Entrypoint para o conteiner iniciar o Apache

CMD ["php-fpm8.0", "-F"]


With this modification, the php8.0-fpm service should start automatically when the container is created.

Rate this post

5 of 5 based on 4262 votes

Comments




© 2024 Hayatsk.info - Personal Blogs Platform. All Rights Reserved.
Create blog  |  Privacy Policy  |  Terms & Conditions  |  Contact Us