如何在Docker中使用Laravel队列侦听
在本地主机上运行时,我使用:如何在Docker中使用Laravel队列侦听,laravel,docker,docker-compose,queue,Laravel,Docker,Docker Compose,Queue,在本地主机上运行时,我使用: php artisan队列:侦听数据库 它侦听并充当队列。在我想对我的Laravel应用程序进行Dockerize之前,这一切都很正常。我已经这样做了,所以无法运行该命令,以便容器具有队列侦听器 我读到我可以做到以下几点: docker exec-t(containername)php artisan队列:侦听 我想找到另一种方法来实现这一点,因为如果容器死亡并重新启动,这个命令将不会被执行,我不能只是观察容器何时死亡,这样我就可以手动执行。我想要一种自动方式。每个
php artisan队列:侦听数据库
它侦听并充当队列。在我想对我的Laravel应用程序进行Dockerize之前,这一切都很正常。我已经这样做了,所以无法运行该命令,以便容器具有队列侦听器
我读到我可以做到以下几点:
docker exec-t(containername)php artisan队列:侦听
我想找到另一种方法来实现这一点,因为如果容器死亡并重新启动,这个命令将不会被执行,我不能只是观察容器何时死亡,这样我就可以手动执行。我想要一种自动方式。每个启动的容器都必须自动运行此命令。我尝试使用Dockerfile,但没有任何效果。要在启动后执行命令,请添加Dockerfile
运行cd/my/project/root&&php artisan队列:listen
此外,您还可以使用Docker,它已经为Laravel预先配置好了,这样您就可以简单地执行类似于
/Vesser artisan
的操作,在启动后执行命令,添加到Docker文件中运行cd/my/project/root&&php artisan队列:listen
此外,您还可以使用Docker进行工作,它已经为Laravel进行了预配置,这样您就可以简单地执行类似于
/Vesser artisan
的操作。如果您需要多个工人,您可以使用管理员进行设置,如Laravel队列页面中所述,您可以使用supervisor进行设置,如Laravel队列页面中所述,创建一个新服务,如下所示,并在同一图像上运行它
这是我的docker composer.yml
文件,这将有助于在AWS Fargate环境中运行队列
version: "3.4"
services:
www:
build:
context: .
dockerfile: ./docker/Dockerfile
image: php-laravel:latest
ports:
- "8008:80"
volumes:
- ./src:/var/www/html/
networks:
- default
php-queue:
restart: always
image: php-laravel:latest
command: php artisan queue:work
volumes:
- ./src:/var/www/html/
volumes:
default:
创建一个新服务,如下所示,并在同一映像上运行它 这是我的
docker composer.yml
文件,这将有助于在AWS Fargate环境中运行队列
version: "3.4"
services:
www:
build:
context: .
dockerfile: ./docker/Dockerfile
image: php-laravel:latest
ports:
- "8008:80"
volumes:
- ./src:/var/www/html/
networks:
- default
php-queue:
restart: always
image: php-laravel:latest
command: php artisan queue:work
volumes:
- ./src:/var/www/html/
volumes:
default:
我不确定这是正确的方法。但我已经做了很长一段时间了,这对我来说很好 转到项目文件夹。 运行php artisan队列:侦听
在运行此命令之前,请将当前用户添加到
www-data
组。不确定这是否正确。但我已经做了很长一段时间了,这对我来说很好
转到项目文件夹。
运行php artisan队列:侦听
在运行此命令之前,请将当前用户添加到
www-data
组。我已经尝试了运行php artisan queue:listen&
,包括和。在这两种情况下,它们都不起作用。我试过运行php artisan queue:listen&
,无论是否使用&
。在这两种情况下,它们都不起作用。