RUN pip install --no-cache-dir -r requirements.txt устанавливается, но не работает с Docker
Я пытаюсь использовать docker для пары проектов, один из которых - Django, а другой - python telegram bot; Но в обоих случаях проблема заключается в том, что независимо от того, как я копирую или устанавливаю requirements.txt в контейнер, библиотеки вроде бы устанавливаются, но затем внезапно я получаю такие ошибки в основном контейнере python:
telegram-bot-container | Файл «/app/run.py», строка 15, in <module> telegram-bot-container | import logging, mysql_handler, cmc_handler, constants telegram-bot-container | File «/app/mysql_handler.py», line 2, in <module> telegram-bot-container | from decouple import config telegram-bot-container | ModuleNotFoundError: Нет модуля с именем 'decouple'
И мне приходится устанавливать все недостающие библиотеки вот так, как будто requirements.txt был лишним!:
pip install python-telegram-bot mysql-connector-python python-coinmarketcap python-decouple
Пожалуйста, помогите мне определить проблему.
Весь мой Dockerfile:
FROM python:3.10-slim
WORKDIR /app
COPY ./requirements.txt /app/
RUN python -m pip install --upgrade pip && \
pip install --no-cache-dir -r requirements.txt || echo "Skipping problematic package." && \
pip install python-telegram-bot mysql-connector-python python-coinmarketcap
COPY . /app
EXPOSE 8081
CMD ["python", "run.py" ]
Я пробовал перестраивать с/без кэширования. Я вижу, что пакеты устанавливаются в журналы.
Я думаю, что для вашего сценария лучше всего подойдет следующая настройка, где ручная установка и требования.txt разделены как разные уровни, что может решить проблему, с которой вы столкнулись (которая, скорее всего, связана с кэшированием)
RUN python -m pip install --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
RUN pip install python-telegram-bot mysql-connector-python python-coinmarketcap