Ультрафиолетовое ультрафиолетовое ультрафиолетовое ультрафиолетоPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ультрафиолетовое ультрафиолетовое ультрафиолетовое ультрафиолето

Сообщение Anonymous »

Я использую УФ в проекте Python для управления зависимостями. Я придерживаюсь следующего Dockerfile на основе некоторых примеров, предоставленных UV Github Repo. < /P>

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

# Use a Python image with uv pre-installed
FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim

# Install the project into `/app`
WORKDIR /app

COPY pyproject.toml uv.lock ./

# Enable bytecode compilation
ENV UV_COMPILE_BYTECODE=1

# Copy from the cache instead of linking since it's a mounted volume
ENV UV_LINK_MODE=copy

# Print Python and uv version for debugging
RUN python --version && which python && uv --version

# Install dependencies
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --locked --no-install-project --no-dev

# # Then, add the rest of the project source code and install it
# # Installing separately from its dependencies allows optimal layer caching
COPY . /app
# RUN --mount=type=cache,target=/root/.cache/uv \
#     uv sync --locked --no-dev

# Place executables in the environment at the front of the path
ENV PATH="/app/.venv/bin:$PATH"

# Reset the entrypoint, don't invoke `uv`
ENTRYPOINT []

# Run the python script using `uv run`
CMD ["uv", "run", "services/trades/src/trades/main.py"]
Когда я пытаюсь построить изображение, используя Docker Build -no -cache -t Trades: dev -f docker/trades.dockerfile. Команда Я получаю эту ошибку:

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

5.509 error: The lockfile at `uv.lock` needs to be updated, but `--locked` was provided. To update the lockfile, run `uv lock`.
------
trades.Dockerfile:19
--------------------
18 |     # Install dependencies
19 | >>> RUN --mount=type=cache,target=/root/.cache/uv \
20 | >>>     --mount=type=bind,source=uv.lock,target=uv.lock \
21 | >>>     --mount=type=bind,source=pyproject.toml,target=pyproject.toml \
22 | >>>     uv sync --locked --no-install-project --no-dev
23 |
--------------------
ERROR: failed to solve: process "/bin/sh -c uv sync --locked --no-install-project --no-dev" did not complete successfully: exit code: 2
make: *** [Makefile:5: build] Error 1
Конечно, я попробовал с запуском UV Lock , но проблема не была решена.
Я также проверил версию базового изображения Python и сравнивал с версией локального проекта Python, и они одинаковые. uv.lock файл из контейнера полагаю и сравнил его с файлом uv.lock в папке локального проекта. Оба файла абсолютно одинаковы.
Я все еще хочу построить изображение, используя тег -заблокированный , чтобы гарантировать стабильную среду между контейнером Docker и локальной папкой.
Любые предложения, пожалуйста?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... e-the-lock
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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