Спам django-celery netcat в контейнере докера

Я пытаюсь запустить сельдерей в отдельном контейнере докеров вместе с настройкой докера django/redis.

Когда я запускаю docker-compose up -d --build, мои журналы через docker-compose logs --tail=0 --follow показывают, что контейнер celery_1 неоднократно отправляет спам в консоль с помощью

Usage: nc [OPTIONS] HOST PORT  - connect
nc [OPTIONS] -l -p PORT [HOST] [PORT]  - listen
    -e PROG Run PROG after connect (must be last)
    -l  Listen mode, for inbound connects
    -lk With -e, provides persistent server
    -p PORT Local port
    -s ADDR Local address
    -w SEC  Timeout for connects and final net reads
    -i SEC  Delay interval for lines sent
    -n  Don't do DNS resolution
    -u  UDP mode
    -v  Verbose
    -o FILE Hex dump traffic
    -z  Zero-I/O mode (scanning)

Я могу заставить сельдерей работать правильно, удалив службу сельдерея из docker-compose.yaml и вручную запустив docker exec -it backend_1 celery -A proj -l info после docker-compose up -d --build. Как воспроизвести функциональность этого ручного процесса в docker-compose.yaml?

Мой docker-compose.yaml выглядит так

version: '3.7'

services:
  backend:
    build: ./backend
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./backend/app/:/usr/src/app/
    ports:
      - 8000:8000
    env_file:
      - ./.env.dev
    depends_on:
      - db
      - redis
    links:
      - db:db
   celery:
     build: ./backend
     command: celery -A proj worker -l info
     volumes:
       - ./backend/app/:/usr/src/app/
     depends_on:
       - db
       - redis
  redis:
    image: redis:5.0.6-alpine
    command: redis-server
    expose:
      - "6379"
  db:
    image: postgres:12.0-alpine
    ports:
      - 5432:5432
    volumes:
      - /tmp/postgres_data:/var/lib/postgresql/data/


person newimprovement    schedule 11.02.2020    source источник


Ответы (1)


Я обнаружил, что проблема заключалась в том, что моя служба сельдерея не могла разрешить хост SQL. Это произошло потому, что мой хост SQL определен в .env.dev, к которому у службы сельдерея не было доступа. я добавил

env_file:
      - ./.env.dev

к службе сельдерея, и все работало, как ожидалось.

person newimprovement    schedule 13.02.2020