我製作了一個 Dockerfile,但是當我運行它並進入容器時,php8.0-fpm 服務未執行。
如何讓它在建置時運行?請注意,我在 Dockerfile 中執行命令 service php8.0-fpm start
,但即使這樣它也沒有運行。
如何讓php8.0-fpm服務隨容器一起啟動?
以下是我製作的 Dockerfile:
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"]```
您需要在啟動時執行 php fpm。如果你的虛擬機器作業系統中安裝了bash,你可以這樣做。
停止訊號SIGTERM
CMD ["/bin/bash", "-c", "php-fpm8 && 在此處包含您的 apache"]
完整指南:如何使用 docker 設定 PHP 8、NGINX 和 PHP-FPM
#我設法將它留在一個容器中,PHP 有一個名為 Supervisor 的擴展,安裝後我們能夠在容器內啟動兩個或多個服務。
Dockerfile 如下圖所示:
我為 Supervisor 建立了兩個設定檔。
apache.conf
#fpm.conf
##至此,兩個服務啟動並且運作完美!