# Dostalgia — Dockerized DOS game hub # ─── Build frontend ─────────────────────────────── FROM node:20-alpine AS frontend-builder WORKDIR /src COPY frontend/package.json frontend/package-lock.json* ./ RUN npm ci 2>/dev/null || npm install COPY frontend/ ./ RUN npm run build # ─── Build Go binary ───────────────────────────── FROM golang:1.23-alpine AS go-builder WORKDIR /src COPY go.mod go.sum ./ RUN go mod download 2>/dev/null || true COPY *.go ./ COPY --from=frontend-builder /src/dist ./frontend/dist/ RUN CGO_ENABLED=0 go build -o /dostalgia . # ─── Runtime ───────────────────────────────────── FROM alpine:3.20 RUN apk add --no-cache ca-certificates tzdata COPY --from=go-builder /dostalgia /dostalgia VOLUME /data EXPOSE 8765 ENV DOSTALGIA_DATA=/data ENV PORT=8765 ENTRYPOINT ["/dostalgia"]