Код: Выделить всё
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
Я не уверен, есть ли что-то особенное в использовании поэзии в образе докера, вызывающее это? Или создание виртуальной среды в Docker вызывает проблемы?
Команды работают нормально, если я использую поэзию для установки и запуска приложения локально. Я надеюсь, что я просто упускаю что-то простое.
ОБНОВЛЕНИЕ:
Добавление «RUN поэзии config virtualenvs.create false», чтобы заставить поэзию не создавать свой собственный venv, позволяет пройти сборку и работать. Однако такой подход вызывает некоторые проблемы, если вы пытаетесь уменьшить размер образа, копируя между каждым образом компоновщика только минимальное количество файлов. Но на данный момент я возьму это на вооружение — возможно, другие смогут лучше понять, почему это произошло, я просто грубо навязывал это.
Подробнее здесь: https://stackoverflow.com/questions/798 ... age-redhat
Мобильная версия