2016-06-16 4 views
2

도커 컨테이너에서 Celery와 RabbitMQ를 어떻게 실행합니까? 샘플 dockerfile 또는 파일 작성을 가르쳐 주시겠습니까?도커 설정 : Celery + RabbitMQ

Dockerfile :

내가 가진 무엇을 나는 데 문제는 내가 셀러리는 살아 남기 위해 위선적 인 말투입니다

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

고정 표시기 - 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 

또는 달리는. 그것은 나가기를 계속합니다.

+0

셀러리의 도커 이미지를 사용할 수 없습니까? Dockerfile으로 무엇을하려고하는지 잘 모르겠습니다. 한 가지 단점은 ENTRYPOINT가 누락되었습니다. – techtabu

답변

1

CMD ["celery", "worker"] 전에 좀 더 설정되는 공식 celery Dockerfile을 시도하고 에뮬레이트 할 수 있습니다.

올바르게 실행하려면 the usage of that image을 참조하십시오.

는 셀러리 노동자 (RabbitMQ 브로커)

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

체크 클러스터의 상태를 시작

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

당신이 당신의 docker-에 해당 이미지를 사용할 수있는 경우 작성한 다음대신 자신 만의 시작을 시도 할 수 있습니다 (FROM celery)..

1

내가 도커 - compose.yml에서 사용한 것. 그것은 나를 위해 작동합니다. 나는 응용 프로그램을 dockerizing 동안 문제를 종료 유사한 셀러리이이 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

에 상세 정보를 확인합니다. 셀러리 구성에서 토끼 서비스 이름 (귀하의 경우에는 rabbitmq)을 호스트 이름으로 사용해야합니다. 즉
broker_url = 'amqp://guest:[email protected]:5672//' 대신 broker_url = 'amqp://guest:[email protected]:5672//'을 사용하십시오.

내 경우, 주요 구성 요소는 플라스크, 셀러리, Redis입니다. 내 문제는 HERE입니다 링크를 확인하시기 바랍니다, 당신은 유용 할 수 있습니다.

관련 문제