如何在 Docker 中使用 Laravel 队列监听

Nik*_*ili 3 queue laravel docker docker-compose

在本地主机上运行时,我使用:

php artisan queue:listen database

它监听并充当队列。在我想要 Dockerize 我的 Laravel 应用程序之前,这一切都很好。我已经完成了此操作,因此无法运行该命令以便容器具有队列侦听器。

我读到我可以执行以下操作:

docker exec -t (containername) php artisan queue:listen

我想找到另一种方法来执行此操作,因为如果容器死亡并自行重新启动,则该命令将不会被执行,并且我不能只观察容器何时死亡,以便我可以手动执行此操作。我想要一种自动的方式。每个启动的容器都必须自动运行此命令。我在 Dockerfile 中尝试过,但没有任何效果。

Bir*_*ira 6

如下所示创建一个新服务并在同一映像上运行它。

这是我的文件,这也将有助于在AWS Fargate环境docker-composer.yml中运行队列

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:
Run Code Online (Sandbox Code Playgroud)