пакет в файле require.txt, но не виден в докере - PullRequest
1 голос
/ 05 июля 2019

У меня есть действующий файл needs.txt, но Docker не устанавливает ни один из пакетов, перечисленных в требованиях

Docker версия 18.09.2 python 3.7.3

needs.txt

django==2.2.2
celery==4.2.1
selenium==3.141.0
BeautifulSoup4==4.7.1
redis==3.2.0

Dockerfile

FROM python:3.7
ENV PYTHONUNBUFFERED 1
ENV DJANGO_ENV dev
ENV DJANGO_ENV dev
COPY ./requirements.txt /code/requirements.txt
RUN pip3 install --upgrade pip
RUN pip3 install -r /code/requirements.txt
COPY . /code/
WORKDIR /code/
EXPOSE 8000

docker_compose.yml

version: '3'

services:
  db:
    image: postgres:9.6.5
    volumes:
      - postgres_data:/var/lib/postgresql/data/
  redis:
    image: "redis:alpine"
  web:
    build: .
    command: bash -c "python /code/manage.py migrate --noinput && python /code/manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
      - redis
  celery:
    build: .
    command: celery -A google_scraper worker -l info
    volumes:
      - .:/code
    depends_on:
      - db
      - redis

volumes:
  postgres_data:

фактическая ошибка при попытке запустить сельдерей:

ImportError: Missing redis library (pip install redis)

Когда я запускаю bash для докера и устанавливаю его вручную, pip3 устанавливает redis - он работает нормально, но все же не решает проблему его сборки, я понятия не имею, где я делаю ошибку.

1 Ответ

0 голосов
/ 08 июля 2019

Интересно, почему Докер не жаловался на отсутствующий каталог /code? Вы уверены, что Docker успешно создал образ? Если да, объясните, пожалуйста, как работал COPY ./requirements.txt /code/requirements.txt? Я проверил, образ python:3.7 не имеет этого каталога в своей корневой файловой системе ...

...