CoolFace
Apppublic

waxijo7185/pitagora

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
Dockerfile52 linesDownload Raw Back to root
1# Scegli un'immagine Node.js di base2FROM node:20-slim3 4# Installa git, python3 e pip5USER root 6RUN apt-get update && apt-get install -y git python3 python3-pip ca-certificates --no-install-recommends && rm -rf /var/lib/apt/lists/*7# Imposta la directory di lavoro nell'immagine8WORKDIR /usr/src/app9 10# Clona il repository Git11# Sostituisci con l'URL del tuo repository e opzionalmente un branch o tag12ARG GIT_REPO_URL="https://github.com/blucobalto123/tvcarina.git"13ARG GIT_BRANCH="main"14RUN git -c http.sslVerify=false clone --branch ${GIT_BRANCH} --depth 1 ${GIT_REPO_URL} .15# Il "." alla fine clona il contenuto della repo direttamente in /usr/src/app16 17# Installa le dipendenze Python direttamente18RUN pip3 install --no-cache-dir --break-system-packages requests beautifulsoup419 20# Installa una versione specifica di pnpm per evitare problemi di compatibilità della piattaforma21RUN npm install -g pnpm@8.15.522 23# Se il package.json non è alla root del repo clonato, dovrai aggiustare i percorsi24# Ad esempio, se è in una sottocartella "my-app":25# WORKDIR /usr/src/app/my-app26 27# Copia package.json e pnpm-lock.yaml (questo passaggio potrebbe non essere più necessario se sono nel repo)28# Se sono già presenti dopo il git clone, puoi ometterlo o assicurarti che i percorsi siano corretti.29# COPY package.json pnpm-lock.yaml ./ 30 31# Assicura che l'utente node sia proprietario della directory dell'app e del suo contenuto32RUN chown -R node:node /usr/src/app33# Torna all'utente node per le operazioni di pnpm e l'esecuzione dell'app34USER node35# Modifica temporanea: rimuovi --frozen-lockfile per permettere l'aggiornamento del lockfile36# se package.json è stato modificato nel repo ma il lockfile no.37RUN pnpm install --prod=false # Installa anche devDependencies per il build38# Copia il resto del codice sorgente (questo non è più necessario se tutto viene da git clone)39# COPY . . 40 41# Esegui il build dell'applicazione TypeScript42RUN pnpm run build43 44# Rimuovi le devDependencies dopo il build se vuoi ridurre la dimensione dell'immagine45# RUN pnpm prune --prod46 47# Esponi la porta su cui l'applicazione ascolterà (Hugging Face la mapperà)48# Non è strettamente necessario EXPOSE qui perché HF assegna la porta tramite env var49# EXPOSE 3000 50 51# Definisci il comando per avviare l'applicazione52CMD [ "pnpm", "start" ]