Настройте RabbitMQ на Docker с помощью Django - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь настроить контейнер Docker с Django.Мой файл Docker:

FROM python:3.7-alpine
MAINTAINER Freshness Productions

ENV PYTHONUNBUFFERED 1

COPY ./requirements.txt /requirements.txt
RUN apk add --update --no-cache postgresql-client
RUN apk add --update --no-cache --virtual .tmp-build-deps \
    gcc libc-dev linux-headers postgresql-dev
RUN pip install -r /requirements.txt
RUN apk del .tmp-build-deps

RUN mkdir /app
WORKDIR /app
COPY ./app /app

RUN adduser -D user
USER user

RUN rabbitmqctl add_user test testpass1
RUN rabbitmqctl add_vhost myvhost
RUN rabbitmqctl set_permissions -p myvhost test ".*" ".*" ".*"
RUN rabbitmq-server

А мой docker-compose.yml:

version: "3"

services:
  app:
    build:
      context: .
    image: &app app
    ports:
      - "8000:8000"
    volumes:
      - ./app:/app
    command: >
      sh -c "python manage.py wait_for_db &&
             python manage.py migrate &&
             python manage.py runserver 0.0.0.0:8000
             export C_FORCE_ROOT='true'
             celery -A app beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler"
    env_file: &envfile
      - env.env
    depends_on:
      - db
      - broker

  db:
    image: postgres:10-alpine
    environment:
      - POSTGRES_DB=app
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=supersecretpassword

  worker:
    build: .
    image: *app
    restart: "no"
    env_file: *envfile
    command: sh -c "celery -A app worker --loglevel=info"
    volumes:
      - ./app:/app
    depends_on:
      - broker

  broker:
    image: rabbitmq:3
    env_file: *envfile
    ports:
      - 5672:5672

Я не вижу, что мне нужно делать, кроме двухразные изображения в моем докереЭто имеет значение?Я получаю сообщение об ошибке:

ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused.

при попытке запустить docker-compose up

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...