2016-06-16 17 views
2

Wie führe ich Sellerie und RabbitMQ in einem Docker Container? Können Sie mich dazu bringen, dockerfile zu probieren oder Dateien zu erstellen?Docker config: Sellerie + RabbitMQ

Das ist, was ich habe:

Dockerfile:

FROM python:3.4 
ENV PYTHONBUFFERED 1 
WORKDIR /tasker 
ADD requirements.txt /tasker/ 
RUN pip install -r requirements.txt 
ADD . /tasker/ 

Docker-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 

Das Problem, das ich habe ist, ich kann Sellerie am Leben zu bleiben erhalten oder Laufen. Es bleibt spannend.

+0

Können Sie nicht die Docker Bilder von Sellerie verwenden? Ich bin mir nicht sicher, was Sie auch mit Ihrer Dockerfile machen wollen. Eine Sache für suer ist, es fehlt ENTRYPOINT. – techtabu

Antwort

1

Sie können versuchen und emulieren die offizielle celery Dockerfile, die ein bisschen mehr Setup vor der CMD ["celery", "worker"] tut.

Siehe the usage of that image, um es ordnungsgemäß auszuführen.

einen Sellerie Arbeiter (RabbitMQ Broker) starten

$ docker run --link some-rabbit:rabbit --name some-celery -d celery 

Überprüfen Sie den Status des Clusters

$ docker run --link some-rabbit:rabbit --rm celery celery status 

Wenn Sie das Bild in Ihrem docker- verwenden können komponieren, dann können Sie versuchen, Ihre eigenen Start FROM celery anstelle vonzu bauen.

1

etwas, das ich in meinem docker-compose.yml verwendet. Für mich geht das. Überprüfen Sie die Angaben in diesem medium

version: '2' 
services: 
rabbit: 
    hostname: rabbit 
    image: rabbitmq:latest 
    environment: 
     - RABBITMQ_DEFAULT_USER=admin 
     - RABBITMQ_DEFAULT_PASS=mypass 
    ports: 
     - "5672:5672" 

worker: 
    build: 
     context: . 
     dockerfile: dockerfile 
    volumes: 
     - .:/app 
    links: 
     - rabbit 
    depends_on: 
     - rabbit 
4

ich ähnliche Sellerie verlässt Problem haben, während die Anwendung dockerizing. Sie sollten den Hasen-Service-Namen (in Ihrem Fall ist es rabbitmq) als Host-Name in Ihrer Sellerie-Konfiguration verwenden. Das heißt, verwenden Sie
broker_url = 'amqp://guest:[email protected]:5672//' statt broker_url = 'amqp://guest:[email protected]:5672//'.

In meinem Fall sind die wichtigsten Komponenten Flask, Sellerie und Redis.Mein Problem ist HERE Bitte überprüfen Sie den Link, können Sie es nützlich finden.