Docker 在php:7-fpm图像中添加管理器

Docker 在php:7-fpm图像中添加管理器,docker,dockerfile,Docker,Dockerfile,我使用php:7-fpm映像,我想安装并使用Supervisor在后台运行一些php脚本(rabbitmq workers) 我可以轻松地安装supervisor,创建conf文件并将其添加到映像中。但是,我不知道如何在容器启动时启动它。如果我用supervisor替换quecmd,那么php fpm不会启动。在docker库中php fpm dockerfile的末尾,他们使用CMD[“php fpm”],我尝试将它添加到我的supervisor配置文件中,并使用CMD/usr/bin/sup

我使用php:7-fpm映像,我想安装并使用Supervisor在后台运行一些php脚本(rabbitmq workers)

我可以轻松地安装supervisor,创建conf文件并将其添加到映像中。但是,我不知道如何在容器启动时启动它。如果我用supervisor替换quecmd,那么php fpm不会启动。在docker库中php fpm dockerfile的末尾,他们使用
CMD[“php fpm”]
,我尝试将它添加到我的supervisor配置文件中,并使用
CMD/usr/bin/supervisor-n-c/etc/supervisor/supervisor.conf
,它启动supervisor,以及一个简单的php服务。但它不起作用

我们能用很多吗?还是有简单的解决办法

非常感谢你的帮助

我的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
My docker-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_消费者:

[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

我看到php fpm位于
/usr/local/sbin/php fpm
。因此,相应地更新您的主管
命令

[program:php-fpm]
command=/usr/local/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
要了解主管的更多信息,请在容器内执行以下操作:

supervisorctl status
supervisorctl tail php-fpm

你的配置看起来不错。集装箱输出是什么?喜欢集装箱工作,但主管不在运行。因为我不是从Dockerfile开始的。但是,如果我启动了supervisor,php不会启动…有什么解决方案可以启动其中的两个吗?