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

标签 laravel docker docker-compose queue

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

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/

相关文章:

image - Laravel 4 从 url 获取图像

javascript - 拉拉维尔 5 : Append input text depends on the selected option vue js

docker - 无法连接到 docker 容器内的网络

docker - 我可以使用 CoreOS rkt 运行/转换 Docker-Compose 项目吗?

node.js - Nodejs 无服务器 Docker 镜像

docker - 使一个容器中的目录可用于另一个容器,同时保留原始容器中的文件

php - 方法 validateConfirm 不存在 (Laravel)

php - 找不到类 'Illuminate\Foundation\Auth\User'

javascript - 后端仅适用于 localhost React + Springboot + docker

docker - 警告 : no logs are available with the 'none' log driver