|
| 1 | +# DevContainer per sviluppo locale identico a GitHub Actions |
| 2 | +FROM ubuntu:22.04 |
| 3 | + |
| 4 | +# Evita domande interattive |
| 5 | +ENV DEBIAN_FRONTEND=noninteractive |
| 6 | + |
| 7 | +# Installa dipendenze di sistema |
| 8 | +RUN apt-get update && \ |
| 9 | + apt-get install -y curl wget git ca-certificates build-essential gnupg lsb-release unzip && \ |
| 10 | + rm -rf /var/lib/apt/lists/* |
| 11 | + |
| 12 | +# Installa Go (necessario per hugo modules) |
| 13 | +ENV GO_VERSION=1.22.3 |
| 14 | +RUN wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz && \ |
| 15 | + tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz && \ |
| 16 | + rm go${GO_VERSION}.linux-amd64.tar.gz |
| 17 | +ENV PATH="/usr/local/go/bin:${PATH}" |
| 18 | + |
| 19 | +# Installa Node.js (LTS) e npm |
| 20 | +RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - && \ |
| 21 | + apt-get install -y nodejs && \ |
| 22 | + npm install -g npm@latest |
| 23 | + |
| 24 | + |
| 25 | +# Installa Hugo extended (sceglie architettura corretta) |
| 26 | +ENV HUGO_VERSION=0.136.5 |
| 27 | +RUN ARCH=$(uname -m) && \ |
| 28 | + if [ "$ARCH" = "x86_64" ]; then \ |
| 29 | + HUGO_ARCH=amd64; \ |
| 30 | + elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then \ |
| 31 | + HUGO_ARCH=arm64; \ |
| 32 | + else \ |
| 33 | + echo "Unsupported architecture: $ARCH" && exit 1; \ |
| 34 | + fi && \ |
| 35 | + wget -O hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-${HUGO_ARCH}.tar.gz && \ |
| 36 | + tar -xzvf hugo.tar.gz -C /usr/local/bin hugo && \ |
| 37 | + rm hugo.tar.gz |
| 38 | + |
| 39 | +# Installa pagefind come dipendenza globale (opzionale, ma utile per debug) |
| 40 | +RUN npm install -g pagefind |
| 41 | + |
| 42 | +# Crea utente non-root per VS Code |
| 43 | +RUN useradd -m vscode |
| 44 | +USER vscode |
| 45 | +WORKDIR /workspace |
| 46 | + |
| 47 | +# Consigliato: copia package.json/package-lock.json se presenti per caching |
| 48 | +# COPY package*.json ./ |
| 49 | +# RUN npm install |
| 50 | + |
| 51 | +# Esporta porta per hugo server |
| 52 | +EXPOSE 1313 |
0 commit comments