Кажется, не удается вызвать установленные пакеты поэзии в образе Docker (redhat)Python

Программы на Python
Ответить
Anonymous
 Кажется, не удается вызвать установленные пакеты поэзии в образе Docker (redhat)

Сообщение Anonymous »

В предисловии я скажу, что я вообще не знаком с какими-либо конкретными различиями Redhat, но я столкнулся с тем, что кажется простой проблемой. У меня есть изображение Redhat 8 и следующие строки в файле docker (изображение взято из рабочего артефакта, поэтому я не могу предоставить прямой пример)

Код: Выделить всё

FROM docker-baseimages-local.**/redhat/ubi8:8.9 AS builder

ARG WORKDIR="/home/python/app"
ENV PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1

RUN dnf -y install \
python3.12 \
python3.12-pip \
python3.12-devel \
make \
gcc-c++
RUN python3.12 --version

RUN mkdir -p ${WORKDIR}
WORKDIR ${WORKDIR}

COPY target/*.tar.gz ${WORKDIR}/
RUN tar -xvzf lunasearch-*.tar.gz --strip-components=1

RUN python3.12 -m venv ${WORKDIR}/venv
ENV PATH="${WORKDIR}/venv/bin:$PATH"
RUN . ./venv/bin/activate
RUN pip3.12 install poetry
RUN poetry --version

RUN poetry install
RUN uvicorn --version
Все, что я делаю, это устанавливаю Python 3.12, копирую файлы кода, создаю виртуальную среду, а затем устанавливаю все с помощью поэтической установки. Все это завершается успешно, но когда я пытаюсь протестировать «uvicorn --version», он говорит, что команда не найдена.
Я не уверен, есть ли что-то особенное в использовании поэзии в образе докера, вызывающее это? Или создание виртуальной среды в Docker вызывает проблемы?
Команды работают нормально, если я использую поэзию для установки и запуска приложения локально. Я надеюсь, что я просто упускаю что-то простое.
ОБНОВЛЕНИЕ:
Добавление «RUN поэзии config virtualenvs.create false», чтобы заставить поэзию не создавать свой собственный venv, позволяет пройти сборку и работать. Однако такой подход вызывает некоторые проблемы, если вы пытаетесь уменьшить размер образа, копируя между каждым образом компоновщика только минимальное количество файлов. Но на данный момент я возьму это на вооружение — возможно, другие смогут лучше понять, почему это произошло, я просто грубо навязывал это.

Подробнее здесь: https://stackoverflow.com/questions/798 ... age-redhat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»