Laravel工人不在docker工作

Laravel工人不在docker工作,laravel,docker,docker-compose,queue,worker,Laravel,Docker,Docker Compose,Queue,Worker,我需要在Docker中添加一个工人。我使用Laravel5.7和DockerCompose版本3 docker编写文件是: potatoes: build: context: ./potatoes dockerfile: Dockerfile args: environment: local ports: - '5000:80' links: - redis - potatoesdb - elasticsearch volumes: - ./potatoe

我需要在Docker中添加一个工人。我使用Laravel5.7和DockerCompose版本3

docker编写文件是:

potatoes:
build:
  context: ./potatoes
  dockerfile: Dockerfile
  args:
    environment: local
ports:
  - '5000:80'
links:
  - redis
  - potatoesdb
  - elasticsearch
volumes:
  - ./potatoes:/var/www/html/app
Dockerfile是:

FROM my-company-laravel:latest

#Copiamos las configuraciones de nginx, el host y supervisor
ADD docker/nginx.conf /etc/nginx/nginx.conf
ADD docker/virtualhost.conf /etc/nginx/conf.d/default.conf
ADD docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf

ARG environment

RUN apt-get install -y libpng-dev
RUN docker-php-ext-install gd
RUN docker-php-ext-install zip

#Copiamos el projecto con los modulos de node y los assets compilados
COPY --chown=root:www-data ./ /var/www/html/app
COPY --chown=root:www-data ./.env.${environment:-local} /var/www/html/app/.env

#Aplicamos los permisos que corresponden
RUN chmod -R g+w /var/www/html/app/storage
RUN chmod -R g+w /var/www/html/app/bootstrap

#Copiamos composer
COPY --from=composer /usr/bin/composer /usr/bin/composer

##Download composer packages
WORKDIR /var/www/html/app
RUN composer install
RUN chmod -R g+w /var/www/html/app/vendor
RUN php artisan key:generate

EXPOSE 80

CMD ["/usr/bin/supervisord"]
在Laravel项目中,我创建了一个docker文件夹,其中包含:

监督文件:

[supervisord]
nodaemon = true
logfile = /tmp/supervisord.log
logfile_maxbytes = 0

[program:php-fpm]
command=/usr/local/sbin/php-fpm --nodaemonize --fpm-config /usr/local/etc/php-fpm.conf
numprocs=1
autostart=true
autorestart=false

[program:nginx]
command =/usr/sbin/nginx -g "daemon off;"
stdout_logfile = /dev/stdout
stdout_logfile_maxbytes = 0
stderr_logfile = /dev/stderr
stderr_logfile_maxbytes = 0

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
numprocs=3
redirect_stderr=true
stdout_logfile=/tmp/worker.log
还有另外两个文件,但都是无关的。(nginx.conf和virtualhot.conf)

应用程序运行正常,但worker不工作,我必须运行php artisan队列:work


此图片显示了文件/tMP/督导日志。

是否<代码> /tMP/Works.log < /代码>文件中有任何与此有关的消息?考虑添加一个单独的容器,其中一个入口点执行<代码> php工匠队列:工作< /COD>而不是试图将此添加到Web应用程序容器中。我要检查一下。@JuanPabloB如果发现了,请告诉我something@sebasaenz问题是在docker compose中,您必须将链接更改为Dependes_on,这样,首先初始化redis