私はphp:7-fpmイメージを使用しています。スーパーバイザーをインストールして使用し、バックグラウンドでいくつかのPHPスクリプト(rabbitmq workers)を実行します。php:7-fpmイメージにスーパーバイザを追加
私は簡単にスーパーバイザーをインストールし、confファイルを作成してイメージに追加できます。しかし、私はコンテナの開始時にそれを起動する方法を知らない。 super CMDをスーパーバイザに置き換えた場合、php-fpmは起動しません。ドッカーライブラリのphp-fpmドッカーファイルの最後には、CMD ["php-fpm"]
が使用されています。私はスーパーバイザconfに追加しようとしました。CMD /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
を使用し、スーパーバイザーと簡単なPHPサービスを開始します。しかし、それは動作しません。
多くのCMDを使用できますか?それとも単純な解決策がありますか?
ありがとうございました。
マイDockerfile:
FROM php:7.1.5-fpm
############################
# Install PHP requirements #
############################
# Install wget, git and libraries needed by php extensions
RUN apt-get update && \
apt-get install -y \
zlib1g-dev \
wget \
git \
supervisor
# Remove lists
RUN rm -rf /var/lib/apt/lists/*
# Compile ICU (required by intl php extension)
RUN curl -sS -o /tmp/icu.tar.gz -L http://download.icu-project.org/files/icu4c/58.2/icu4c-58_2-src.tgz && \
tar -zxf /tmp/icu.tar.gz -C /tmp && \
cd /tmp/icu/source && \
./configure --prefix=/usr/local && \
make && \
make install
# Configure, install and enable php extensions
RUN docker-php-ext-configure intl --with-icu-dir=/usr/local
RUN docker-php-ext-install intl pdo pdo_mysql zip bcmath
RUN docker-php-ext-enable opcache
# Install Composer
RUN php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/local/bin --filename=composer && chmod +x /usr/local/bin/composer
# Copy the php.ini file
COPY php.ini /usr/local/etc/php/
##################
# Define workdir #
##################
WORKDIR /var/www/html/current
マイドッキングウィンドウ-compose.yml:
php:
container_name: php
build: ./docker/php
volumes:
- .:/var/www/html/current:rw
- ./docker/php/php.ini:/usr/local/etc/php/php.ini:ro
- ./docker/php/supervisor/blast_consumer.conf:/etc/supervisor/conf.d/blast_consumer.conf:ro
networks:
- default
マイblast_consumer:
[program:php-fpm]
command=/usr/sbin/php-fpm
numprocs=1
autostart=true
autorestart=true
stderr_logfile=/var/log/php-fpm_consumer.err.log
stdout_logfile=/var/log/php-fpm_consumer.out.log
priority=100
[program:blast_consumer]
command=/var/www/html/current/bin/console rabbitmq:consumer blast
numprocs=1
autostart=true
autorestart=true
stderr_logfile=/var/log/blast_consumer.err.log
stdout_logfile=/var/log/blast_consumer.out.log
priority=200
あなたの構成がOKに見えます。コンテナ出力は何ですか? – Robert
コンテナと同じように動作しますが、スーパーバイザーは起動していません.Dockerfileで起動しないためです。しかし、もし私が監督を開始すると、PHPが起動しない... – mpiot