Обычной практикой здесь является выбор некоторого фиксированного пути внутри контейнера Docker. Это должен быть путь, отличный от того, где установлено ваше приложение; ему вообще не нужно сопоставлять какой-либо конкретный путь к хосту.
FROM python:3
RUN pip3 install graphreport==1.2.1
WORKDIR /data
CMD ["graphreport"]
docker build -t me/graphreport:1.2.1 .
docker run --rm \
-v /Users/vaibmish/Documents/new/graph-report:/data \
me/graphreport:1.2.1
(Помните, что только последний CMD
имеет эффект, и если это не правильно сформированный массив JSON , Docker будет интерпретировать ее как команду оболочки. То, что вы показываете в вопросе, будет запускать команду test (1), а не программу, которую вы устанавливаете.)
Если вы пытаетесь установить один пакет из PyPI и просто запустить его для локальных файлов, виртуальную среду Python будет намного проще настроить, чем любую основанную на Docker, и она будет работать, как вы ожидаете:
python3 -m venv graphreport
. graphreport/bin/activate
pip3 install graphreport==1.2.1
cd /Users/vaibmish/Documents/new/graph-report
graphreport
deactivate # switch back to system Python/pip
Весь установленный код Python находится в каталоге виртуальной среды graphreport
, и если вам больше не нужно это приложение, вы можете просто удалить дерево каталогов.