【发布时间】:2020-05-24 16:54:34
【问题描述】:
我是第一次使用 ECS。我已将我的 Django 2.2 应用程序 docker 化,并使用 ECS 和 uwsgi 在生产环境中运行 Django 应用程序。
在开发环境中,我不得不运行三个命令来运行 Django 服务器、celery 和 celery beat
python manage.py runserver
celery -A qcg worker -l info
celery beat -A qcg worker -l info
qcg 是我的应用程序。
我的 Dockerfile 有以下 uwsgi 配置
EXPOSE 8000
ENV UWSGI_WSGI_FILE=qcg/wsgi.py
ENV UWSGI_HTTP=:8000 UWSGI_MASTER=1 UWSGI_HTTP_AUTO_CHUNKED=1 UWSGI_HTTP_KEEPALIVE=1 UWSGI_LAZY_APPS=1 UWSGI_WSGI_ENV_BEHAVIOR=holy
ENV UWSGI_WORKERS=2 UWSGI_THREADS=4
ENV UWSGI_STATIC_MAP="/static/=/static_cdn/static_root/" UWSGI_STATIC_EXPIRES_URI="/static/.*\.[a-f0-9]{12,}\.(css|js|png|jpg|jpeg|gif|ico|woff|ttf|otf|svg|scss|map|txt) 315360000"
USER ${APP_USER}:${APP_USER}
ENTRYPOINT ["/app/scripts/docker/entrypoint.sh"]
entrypoint.sh 文件有
exec "$@"
我已经创建了 ECS 任务定义,并且在容器的命令输入中,我有
uwsgi --show-config
这将启动uwsgi 服务器。
现在我在集群中运行 1 个 EC2 实例,并运行一个带有两个任务定义实例的服务。
我不知道如何在我的应用程序中运行 celery 任务和 celery beat。
我需要为运行 celery 和 celery-beat 创建单独的任务吗?
【问题讨论】:
标签: django docker amazon-ecs ecs-taskdefinition