为什么我的容器不能find一个点子安装包(通过git)?

我有一个Dockerfile

FROM ubuntu:xenial LABEL maintainer="info@martin-thoma.com" # Settings for the local user to create ENV APP_USER docker ENV APP_USER_UID 9999 ENV APP_USER_GROUP docker ENV APP_USER_GROUP_GID 4711 ENV PYTHONIOENCODING utf-8 # Install and update software RUN apt-get update -y && apt-get install -y --fix-missing git python-pip python-dev build-essential poppler-utils libmysqlclient-dev RUN pip install pip --upgrade # Copy projects code COPY . /opt/app WORKDIR /opt/app RUN pip install -r requirements.txt # Create user RUN groupadd --gid ${APP_USER_GROUP_GID} ${APP_USER_GROUP} \ && useradd --uid ${APP_USER_UID} --create-home -g ${APP_USER_GROUP} ${APP_USER} \ && chown -R $APP_USER:$APP_USER_GROUP /opt/app # Start app USER docker RUN mkdir -p /opt/app/filestorage ENTRYPOINT ["python"] CMD ["app.py"] 

和一个requirements.txt

 -e git+https://github.com/ecederstrand/exchangelib.git@85eada6d59d0e2c757ef17c6ce143f3c976d2a90#egg=exchangelib Flask==0.12.2 fuzzywuzzy==0.15.1 

当我更换exchangelibexchangelib (因此不使用GIT,但在PyPI上的版本)它的作品(但我的代码不工作,因为我需要一些最近的变化)。

当我有这个,我得到:

 web_1 | ImportError: No module named exchangelib 

问题是什么? 为什么我的容器不能find一个点子安装包(通过git)? 我如何解决它?

我的直觉是,问题是我作为root用户安装它,但应用程序作为另一个用户运行。 PyPI包似乎为所有用户安装,而可编辑只是本地的。 但是我仍然不知道如何解决这个问题。

简单使用

 git+git://github.com/ecederstrand/exchangelib.git@85eada6d59d0e2c757ef17c6ce143f3c976d2a90#egg=exchangelib 

作为requirements.txt中的一行工作。 docker文件没有变化是必要的。