Rumah > Soal Jawab > teks badan
Saya membuat Dockerfile, tetapi apabila saya menjalankannya dan masuk ke dalam bekas, perkhidmatan php8.0-fpm tidak berjalan.
Bagaimana untuk menjadikannya berjalan pada masa binaan? Ambil perhatian bahawa saya menjalankan arahan service 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"]```
P粉4634184832023-11-07 20:32:06
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
P粉4764755512023-11-07 13:07:41
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:
FROM httpd:2.4-alpine RUN apk update && \ apk add \ php \ php-fpm \ php-zip \ composer \ supervisor COPY . /usr/local/apache2/htdocs COPY httpd.conf /usr/local/apache2/conf/httpd.conf COPY supervisor /etc/supervisor WORKDIR /usr/local/apache2/htdocs CMD ["supervisord","-n", "-c", "/etc/supervisor/supervisord.conf"]
Saya mencipta dua fail konfigurasi untuk Penyelia.
apache.conf
[program:apache] command=httpd -DFOREGROUND autostart=true autorestart=true priority=10 startretries=1 startsecs=1 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0
fpm.conf
[program:php-fpm] command = php-fpm8 --nodaemonize autostart=true autorestart=true priority=5 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0
Pada ketika ini, kedua-dua perkhidmatan dimulakan dan berjalan dengan sempurna!