在本地主机上运行时,我使用:
php artisan queue:监听数据库
监听并充当队列。在我想对我的 Laravel 应用程序进行 Dockerize 之前,这一切正常。我已经这样做了,所以不能运行命令让容器有队列监听器。
我读到我可以做到以下几点:
docker exec -t (containername) php artisan queue:listen
我想找到另一种方法来执行此操作,因为如果容器挂掉并自行重启,则不会执行此命令,而且我不能只看容器何时挂掉以便手动执行。我想要一个自动的方式。每个启动的容器都必须自动运行此命令。我在 Dockerfile 中尝试过,但没有任何效果。
最佳答案
如下所示创建一个新服务并在同一图像上运行它。
这是我的 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:
关于laravel - 如何在 Docker 中使用 Laravel 队列监听,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54906824/