shuba.ivan
shuba.ivan

Reputation: 4071

supervisord in docker image python Invalid seek

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

Answers (1)

shuba.ivan
shuba.ivan

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

Related Questions