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上のバージョンではありません)exchangelib
にexchangelib
ラインを変更すると、それが動作します(しかし、私のコードはdoesnのを持っています私は最近の変更のいくつかを必要とするように働いていない)。
私はこれを持っている場合は、私が取得:
web_1 | ImportError: No module named exchangelib
問題は何ですか? 私のコンテナがpipインストールされたパッケージを見つけることができないのはなぜですか?どうすれば修正できますか?
私の直感は、rootユーザーとしてインストールするのが問題ですが、アプリケーションは別のユーザーとして実行されます。 PyPIパッケージはすべてのユーザーにインストールされるように見えますが、編集可能なのはローカルのみです。しかし、私はまだそれを修正する方法を知らない。
暗闇で撮影されているかもしれませんが、これに関連しているかもしれません。https://stackoverflow.com/a/42982245/4557537 – Fadi
@Fadi私はそうは思わない –
ドッカーファイルなどを使用すると役立ちます私のために良い。 – c3st7n