migrate from pip to uv for dependency management

- Add pyproject.toml and uv.lock for modern Python packaging
- Update README and Dockerfile to use uv instead of pip
This commit is contained in:
2025-09-04 16:50:04 +02:00
parent bff0f377a1
commit a62e9344f6
5 changed files with 1328 additions and 63 deletions

View File

@@ -1,14 +1,25 @@
# Per ora abbiamo bisogno solo di python, se nel futuro avremo bisogno di pytorch/cuda possiamo sempre tornare indietro
#FROM pytorch/pytorch:2.6.0-cuda12.6-cudnn9-devel
FROM python:3.11-slim
# Vogliamo usare una versione di linux leggera con già uv installato
# Infatti scegliamo l'immagine ufficiale di uv che ha già tutto configurato
# Nel caso in cui si volesse usare un'altra immagine di base che ha magari CUDA
# bisognerebbe installare uv manualmente come descritto nel README
#FROM pytorch/pytorch:2.6.0-cuda12.6-cudnn9-devel # Lo lascio qui nel caso
FROM ghcr.io/astral-sh/uv:python3.12-alpine
# Copio tutti i dati del progetto nella workdir
# (dopo aver definito la workdir mi trovo già in essa)
# Dopo aver definito la workdir mi trovo già in essa
WORKDIR /app
COPY src .
COPY requirements.txt .
COPY LICENSE .
# Installo le dipendenze
RUN pip install --no-cache-dir -r requirements.txt
# Settiamo variabili d'ambiente per usare python del sistema invece che venv
ENV UV_PROJECT_ENVIRONMENT=/usr/local
ENV UV_LINK_MODE=copy
# Copiamo prima i file di configurazione delle dipendenze e installiamo le dipendenze
COPY pyproject.toml ./
COPY uv.lock ./
RUN uv sync --frozen --no-cache
# Copiamo i file sorgente dopo aver installato le dipendenze per sfruttare la cache di Docker
COPY LICENSE .
COPY src ./src
# Comando di default all'avvio dell'applicazione
CMD ["python", "src/app.py"]