Как включить пакеты Python в файл Docker? - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь включить весь каталог в файл Docker. Вот мой текущий Dockerfile:

FROM python:3

COPY requirements.txt ./

RUN pip install -r requirements.txt

ADD streaming_integration_test.py /

CMD python ./streaming_integration_test.py

Однако, после создания этого файла Docker и его запуска, я получаю следующую ошибку:

     File "./streaming_integration_test.py", line 3, in <module>
    from data_streamer.file_utilities import FileUtilities
ModuleNotFoundError: No module named 'data_streamer'

Где file_utilities.py является частью пакета и находится в каталоге data_streamer Я новичок в Docker, и я не совсем уверен, что я делаю неправильно. Спасибо всем, кто ответил заранее.

1 Ответ

1 голос
/ 03 июня 2019
FROM python:3                               # pull filesystem    
COPY requirements.txt ./                    # copy single file
RUN pip install -r requirements.txt         # run command
ADD streaming_integration_test.py /         # add single file
CMD python ./streaming_integration_test.py  # run command on "docker run"ň

Так что вам либо нужно добавить это:

COPY ./data_streamer /data_streamer         # copy folder

, который копирует папку (и ее содержимое) в новый слой изображения или в команде docker run подключите папку (на вашемхост-система) как том в вашем док-контейнере (аналогично команде mount в системах unix):

# mount host folder `data_streamer` from the current directory (pwd) to `/data_streamer`
docker run --volume $(pwd)/data_streamer:/data_streamer [IMAGE_NAME]
...