通过celery和websocket在Azure应用服务上进行Python Django App部署

我正在尝试将 Django应用从Heroku迁移到Azure应用服务。

该应用程序由Websocket和Rest API组成。

因此,应用程序的Web部分在 daphne Web服务器上运行,而工作程序部分在 celery 上运行。

在Heroku中,我的Procfile看起来像

web: daphne backend.asgi:application --port $PORT --bind 0.0.0.0 -v 0
worker: celery worker -A backend --loglevel=debug --concurrency=8

当我在Azure应用程序服务上尝试相同的操作时,他们提供了一个启动命令来在构建后启动服务器。

我有Web和worker命令来运行服务器。我试图使用sh文件执行Web和worker命令。但这行不通

所以下面是我面临的问题

  1. 达芙妮服务器命令无法正常运行,但是当我更改它时 可以使用[而不使用WebSocket支持:(通过使用gunicorn]
  2. 此外,我不知道如何在azure应用服务中运行Web和worker 只有一个启动命令选项

欢迎任何帮助或指导

预先感谢.....

minm_in520 回答:通过celery和websocket在Azure应用服务上进行Python Django App部署

我仅通过使用带有简单的&选项的基本DockerFile即可获得解决方案。 我已经附加了天蓝色使用的自定义DockerFile

FROM python:3.7
RUN mkdir -p /opt/services/app/src
WORKDIR /opt/services/app/src
ADD . /opt/services/app/src
RUN pip install -r requirements.txt
EXPOSE 8000
CMD python manage.py collectstatic --no-input
CMD python manage.py migrate
CMD daphne backend.asgi:application --port 8000 --bind 0.0.0.0 -v 0 & celery worker -A backend --loglevel=debug --concurrency=8
本文链接:https://www.f2er.com/3008368.html

大家都在问