Saya membuat Dockerfile, tetapi apabila saya menjalankannya dan masuk ke dalam bekas, perkhidmatanphp8.0-fpm tidak berjalan.
Bagaimana untuk menjadikannya berjalan pada masa binaan? Ambil perhatian bahawa saya menjalankan arahanservice php8.0-fpm start
dalam Dockerfile, tetapi walaupun begitu ia tidak berjalan.
Bagaimana untuk membuat perkhidmatan php8.0-fpm bermula dengan bekas?
Berikut ialah Dockerfile yang saya buat:
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"]```
Anda perlu menjalankan php fpm semasa permulaan. Anda boleh melakukan ini jika bash dipasang dalam sistem pengendalian mesin maya anda.
Isyarat berhenti SIGTERM
CMD ["/bin/bash", "-c", "php-fpm8 && sertakan apache anda di sini"]
Panduan lengkap:Cara menyediakan PHP 8, NGINX dan PHP-FPM menggunakan docker
Saya berjaya menyimpannya dalam bekas, PHP mempunyai sambungan yang dipanggil Supervisor dan selepas pemasangan kami dapat memulakan dua atau lebih perkhidmatan di dalam bekas.
Dockerfile kelihatan seperti ini:
Saya mencipta dua fail konfigurasi untuk Penyelia.
apache.conf
fpm.conf
Pada ketika ini, kedua-dua perkhidmatan dimulakan dan berjalan dengan sempurna!