如何使用 docker 部署 django-q worker?

How to deploy django-q worker with docker?

假设这个简单的 docker-compose 文件。

version: "3.9"
   
services:  
  redis:
    image: redis:alpine
    ports:
      - 6379:6379

  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - redis

如何添加 django-q worker 来处理来自 web 容器的任务?

我可能可以使用不同的命令构建相同的图像,例如 python manage.py qcluster,但我认为这个解决方案并不优雅。你能建议一些方法吗?

您可以做的最简单的事情可能是为 qcluster 添加一个新集群。 像这样:

version: "3.9"
   
services:  
  redis:
    image: redis:alpine
    ports:
      - 6379:6379

  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - redis
  djangoq:
    build: .
    command: python manage.py qcluster
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - redis