blu*_*inc 6 rabbitmq celery docker dockerfile docker-compose
如何在docker容器中运行Celery和RabbitMQ?你能指点我试试dockerfile或撰写文件吗?
这就是我所拥有的:
Dockerfile:
FROM python:3.4
ENV PYTHONBUFFERED 1
WORKDIR /tasker
ADD requirements.txt /tasker/
RUN pip install -r requirements.txt
ADD . /tasker/
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml
rabbitmq:
image: tutum/rabbitmq
environment:
- RABBITMQ_PASS=mypass
ports:
- "5672:5672"
- "15672:15672"
celery:
build: .
command: celery worker --app=tasker.tasks
volumes:
- .:/tasker
links:
- rabbitmq:rabbit
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我不能让芹菜活着或跑步.它不断退出.
2018 年更新,正如Floran Gmehlin在下面评论的那样,celery 图像现已正式弃用,取而代之的是官方 python 图像。
正如celery/issue 1中评论的那样:
使用这个图像似乎很荒谬。如果您有一个应用程序容器,就像通常使用 Django 一样,您需要将所有依赖项(您在 中导入的内容
tasks.py)再次安装到该容器中。这就是为什么其他项目(例如 cookiecutter-django)重用Celery 的应用程序容器,并且仅
celery ... worker使用docker-compose.
请注意,现在 被docker-compose.yml称为local.yml并使用start.sh.
原答案:
您可以尝试模拟官方的celery Dockerfile,它在CMD ["celery", "worker"].
查看该映像的用法以正确运行它。
启动一个 celery 工作者(RabbitMQ Broker)
$ docker run --link some-rabbit:rabbit --name some-celery -d celery
Run Code Online (Sandbox Code Playgroud)
检查集群状态
$ docker run --link some-rabbit:rabbit --rm celery celery status
Run Code Online (Sandbox Code Playgroud)
如果您可以在 docker-compose 中使用该映像,那么您可以尝试构建自己的启动FROM celery而不是FROM python.
| 归档时间: |
|
| 查看次数: |
5309 次 |
| 最近记录: |