ModuleNotFoundError в Docker - PullRequest
       0

ModuleNotFoundError в Docker

0 голосов
/ 21 марта 2020

Я импортировал весь свой проект в docker и получаю

ModuleNotFoundError

из одного из созданных мной модулей.

FROM python:3.8
WORKDIR /workspace/
COPY . /workspace/
RUN pip install pipenv
RUN pipenv install --deploy --ignore-pipfile
#EXPOSE 8000
#CMD ["pipenv", "run", "python", "/workspace/bin/web.py"]

Я пытался искать ответы, но не могу заставить их работать.

команды:

docker build -t atletico .
docker run -p 8000:8000 atletico

Docker Сборка: https://pastebin.com/FXMrY2En

Traceback (most recent call last):
  File "/workspace/bin/web.py", line 3, in <module>
    from bin.setup import setup_app
ModuleNotFoundError: No module named 'bin'

Копия моего каталога:

├── Dockerfile
├── Pipfile
├── Pipfile.lock
├── README.md
├── bin
│   ├── __init__.py
│   ├── __pycache__
│   │   └── web.cpython-38.pyc
│   ├── setup.py
│   └── web.py
├── docker-compose.yml
├── frio
│   ├── __init__.py
│   ├── __pycache__
│   │   └── __init__.cpython-38.pyc
│   ├── app_events.py
│   └── config.py
├── routes
│   ├── __init__.py

docker -compose.yml:

version: '3'
services:
  db:
    image: postgres:12
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=test_db
  redis:
    image: "redis:alpine"
  web:
    env_file:
      - .env.local
    build: .
    ports:
      - "8000:8000"
    volumes:
      - .:/workspace
    depends_on:
      - db
      - redis
    command: "pipenv run python /workspace/bin/web.py"

1 Ответ

1 голос
/ 23 марта 2020

Итак, я наконец исправил проблему. Для тех, кому может быть интересно, как получилось, что я это исправил. Вам необходимо определить переменную окружения PYTHONPATH в Dockerfile или docker-compose.yml.

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