Docker卷绑定中断python脚本CLI entry_point

好吧,我有一个相当基本的python click CLI应用程序,当在一个容器中绑定的卷(文件上的活动开发)运行似乎打破了我在setup.pyentry_point

运行以下任一命令

 $ docker run -it -v $(pwd):/opt/app gdax $ docker run -it --mount src=$(pwd),target=/opt/app,type=bind gdax 

我得到以下

 Traceback (most recent call last): File "/usr/local/bin/gdax", line 6, in <module> from pkg_resources import load_entry_point File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3144, in <module> @_call_aside File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3128, in _call_aside f(*args, **kwargs) File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3157, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 666, in _build_master ws.require(__requires__) File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 984, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 870, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'gdax-cli' distribution was not found and is required by the application 

Dockerfile

 FROM python:3.6 RUN mkdir /opt/app COPY . /opt/app WORKDIR /opt/app RUN pip install --editable . CMD ["gdax", "--help"] 

setup.py

 from setuptools import setup setup( name='gdax-cli', version='0.1', py_modules=['app'], install_requires=[ 'click==6.7', 'gdax==1.0.6' ], entry_points=''' [console_scripts] gdax=app:cli ''', ) 

/ usr / local / bin / gdax < – 在容器上

 #!/usr/local/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'gdax-cli','console_scripts','gdax' __requires__ = 'gdax-cli' import re import sys from pkg_resources import load_entry_point if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) sys.exit( load_entry_point('gdax-cli', 'console_scripts', 'gdax')() ) 

如果我不绑定卷,我可以执行脚本,但是我无法编辑主机上的文件。 我相当有信心,这与如何绑定“覆盖”这些文件有关,并会打破/usr/local/bin/gdax加载由setuptools放置的文件的能力。 有没有办法绕过这个(在容器中调用python app.py之外)?