2017-08-16 1 views
0

私はDockerfile私のコンテナがpipインストールされたパッケージを見つけることができないのはなぜですか?

FROM ubuntu:xenial 
LABEL maintainer="[email protected]" 

# 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/[email protected]#egg=exchangelib 
Flask==0.12.2 
fuzzywuzzy==0.15.1 

私は(それゆえにgitを使用して、しかしは、PyPI上のバージョンではありません)exchangelibexchangelibラインを変更すると、それが動作します(しかし、私のコードはdoesnのを持っています私は最近の変更のいくつかを必要とするように働いていない)。

私はこれを持っている場合は、私が取得:

web_1 | ImportError: No module named exchangelib 

問題は何ですか? 私のコンテナがpipインストールされたパッケージを見つけることができないのはなぜですか?どうすれば修正できますか?

私の直感は、rootユーザーとしてインストールするのが問題ですが、アプリケーションは別のユーザーとして実行されます。 PyPIパッケージはすべてのユーザーにインストールされるように見えますが、編集可能なのはローカルのみです。しかし、私はまだそれを修正する方法を知らない。

+0

暗闇で撮影されているかもしれませんが、これに関連しているかもしれません。https://stackoverflow.com/a/42982245/4557537 – Fadi

+0

@Fadi私はそうは思わない –

+0

ドッカーファイルなどを使用すると役立ちます私のために良い。 – c3st7n

答えて

0

は単に働いrequirements.txtで1行に

git+git://github.com/ecederstrand/[email protected]#egg=exchangelib 

を使用します。ドッカーファイルの変更は必要ありませんでした。

関連する問題