Reputation: 4071
I faced with strange behaviour, when consumer with supervisord image works in logs I faced with the same erro all time whta it could be and how to resolve it ?
logs
2020-07-01 08:44:59,356 CRIT uncaptured python exception, closing channel <POutputDispatcher at 140437158404816 for <Subprocess at 140437159857600 with name messenger-consume_00 in state STARTING> (stderr)> (<type 'exceptions.IOError'>:[Errno 29] Invalid seek [/usr/lib/python2.7/site-packages/supervisor/supervisord.py|runforever|221] [/usr/lib/python2.7/site-packages/supervisor/dispatchers.py|handle_read_event|232] [/usr/lib/python2.7/site-packages/supervisor/dispatchers.py|record_output|166] [/usr/lib/python2.7/site-packages/supervisor/dispatchers.py|_log|142] [/usr/lib/python2.7/site-packages/supervisor/loggers.py|info|275] [/usr/lib/python2.7/site-packages/supervisor/loggers.py|log|293] [/usr/lib/python2.7/site-packages/supervisor/loggers.py|emit|186] [/usr/lib/python2.7/site-packages/supervisor/loggers.py|doRollover|211])
supervisord configuration
[program:php-fpm]
command=php-fpm7 -F
numprocs=1
autostart=true
autorestart=true
startsecs=0
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
[program:cron]
command=/usr/sbin/crond -f -l 8
stdout_logfile=/dev/stdout
stderr_logfile=/dev/stderr
stdout_logfile_maxbytes=0
stderr_logfile_maxbytes=0
autorestart=true
[program:messenger-consume]
command=php /var/www/symfony/bin/console messenger:consume download_file --limit=1
numprocs=2
stdout_logfile=/dev/stdout
stderr_logfile=/dev/stderr
autostart=true
autorestart=true
process_name=%(program_name)s_%(process_num)02d
[supervisord]
nodaemon=true
[unix_http_server]
file=/tmp/supervisor.sock
docker compose consumer configuration
php-consume-csv-carriage:
container_name: php-consume-csv-carriage
build: php-consume-csv-carriage
ports:
- "9004:9001"
environment: # You can use this section to set environment variables. But you can also use the .env file.
- MESSENGER_TRANSPORT_DSN=${MESSENGER_TRANSPORT_DSN} # AMQP connection string-
volumes:
- ./symfony:/var/www/symfony:cached
- ./logs/symfony:/var/www/symfony/var/log:cached
- ./php-consume-csv-carriage/supervisord.conf:/etc/supervisord/conf.d/supervisord.conf
links:
- redis
depends_on:
- db
networks:
- php
docker file
FROM alpine:3.10
LABEL maintainer="Vincent Composieux <[email protected]>"
RUN apk add --update --no-cache \
coreutils \
php7-fpm \
php7-apcu \
php7-ctype \
php7-curl \
php7-dom \
php7-gd \
php7-iconv \
php7-imagick \
php7-json \
php7-intl \
php7-mcrypt \
php7-fileinfo\
php7-mbstring \
php7-opcache \
php7-openssl \
php7-pdo \
php7-pdo_mysql \
php7-mysqli \
php7-pdo_pgsql \
php7-pgsql \
php7-xml \
php7-zlib \
php7-phar \
php7-tokenizer \
php7-session \
php7-simplexml \
php7-xdebug \
php7-zip \
php7-xmlwriter \
make \
curl \
zlib-dev \
libxml2-dev \
rabbitmq-c-dev \
oniguruma-dev \
php7-pecl-amqp \
php7-amqp \
php7-redis \
openrc --no-cache \
supervisor
COPY docker-entrypoint.sh /opt/docker-entrypoint.sh
RUN echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig \
&& curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig \
&& php composer-setup.php && rm composer-setup.php* \
&& chmod +x composer.phar && mv composer.phar /usr/bin/composer && chmod +x /opt/docker-entrypoint.sh
COPY symfony.ini /etc/php7/conf.d/
COPY symfony.ini /etc/php7/cli/conf.d/
COPY xdebug.ini /etc/php7/conf.d/
COPY symfony.pool.conf /etc/php7/php-fpm.d/
COPY ./cron /opt/cron
RUN crontab -u root /opt/cron
WORKDIR /var/www/symfony
ENTRYPOINT ["ash", "/opt/docker-entrypoint.sh"]
EXPOSE 9001
Upvotes: 5
Views: 1627
Reputation: 4071
I resolved it like that solution:
[program:messenger-consume]
command=php /var/www/symfony/bin/console messenger:consume andraction_parse_row --limit=200
numprocs=5
stdout_logfile=/dev/stdout
stderr_logfile=/dev/stderr
stdout_logfile_maxbytes = 0
stderr_logfile_maxbytes = 0
autostart=true
autorestart=true
process_name=%(program_name)s_%(process_num)02d
it was need to added
stdout_logfile_maxbytes = 0
stderr_logfile_maxbytes = 0
Upvotes: 7