J'ai créé un Dockerfile, mais lorsque je l'ai exécuté et que je suis entré dans le conteneur, le service php8.0-fpm ne fonctionnait pas.
Comment le faire fonctionner au moment de la construction ? Notez que j'exécute la commande service php8.0-fpm start
dans le Dockerfile, mais même dans ce cas, elle ne s'exécute pas.
Comment faire démarrer le service php8.0-fpm avec le conteneur ?
Voici le Dockerfile que j'ai créé :
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"]```
Vous devez exécuter php fpm au démarrage. Vous pouvez le faire si bash est installé sur le système d'exploitation de votre machine virtuelle.
Signal d'arrêt SIGTERM
CMD ["/bin/bash", "-c", "php-fpm8 && incluez votre Apache ici"]
Guide complet : Comment configurer PHP 8, NGINX et PHP-FPM à l'aide de Docker
J'ai réussi à le conserver dans un conteneur, PHP a une extension appelée Supervisor et après l'installation, nous avons pu démarrer deux ou plusieurs services à l'intérieur du conteneur.
Le fichier Docker ressemble à ceci :
J'ai créé deux fichiers de configuration pour Supervisor.
apache.conf
fpm.conf
À ce stade, les deux services sont démarrés et fonctionnent parfaitement !