Нужно ли мне копировать каждый элемент рабочей области в Dockerfile, чтобы иметь возможность использовать `uv sync --locPython

Программы на Python
Ответить
Anonymous
 Нужно ли мне копировать каждый элемент рабочей области в Dockerfile, чтобы иметь возможность использовать `uv sync --loc

Сообщение Anonymous »

В настоящее время я занимаюсь миграцией существующей базы кода в моей организации для использования uv в качестве менеджера пакетов. Это монорепозиторий, и возможность настраивать рабочие пространства в одном репозитории была потрясающей. Я все еще сталкиваюсь с проблемой создания образа Docker с помощью файла uv.lock.
Ниже приведена структура моих папок.

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

org-backend
└── src
└── base
└── ..
└── pyproject.toml
└── bo
└── ..
└── pyproject.toml
└── application
└── ..
└── pyproject.toml
└── pyproject.toml
Вот корень pyproject.toml

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

[project]
name = "org-backend"
version = "0.1.0"
description = ".."
readme = "README.md"
requires-python = "==3.12.*"

[tool.uv.workspace]
members = ["src/base", "src/bo", "application"]
Корневой pyproject.toml содержит базу, и приложение в качестве члена рабочей области. При создании образа Docker для службы приложений я копирую только следующие /src/base и /application.

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

# Dockerfile for application
RUN pip install uv==0.8.17

COPY ./src/base /org-backend/src/base

COPY application /org-backend/application

COPY pyproject.toml /org-backend/
COPY uv.lock /org-backend/

WORKDIR /org-backend
RUN uv sync --locked --active --no-group dev --package application
Вот сообщение об ошибке при сборке с использованием вышеуказанного файла Docker. Файл блокировки в «uv.lock» необходимо обновить, но был предоставлен «--locked». Чтобы обновить файл блокировки, запустите «uv lock».
Мой вопрос: нужно ли мне копировать каждого члена рабочей области? Если нет, то как лучше всего создать образ?
Если да, то это будет хлопотно, поскольку у меня 4-5 пакетов и более 15 сервисов. Все будет определено как член рабочей области, а 15 сервисов даже не будут связаны друг с другом. Необходимость копировать каждого члена рабочей области приведет к хаосу и содержит ненужный код!

Подробнее здесь: https://stackoverflow.com/questions/797 ... -to-use-uv
Ответить

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

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

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

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

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