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
Вернуться на верх