28 lines
969 B
Docker
28 lines
969 B
Docker
# 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 install --legacy-peer-deps
|
|
COPY frontend/ ./
|
|
RUN npm run build
|
|
|
|
# ─── Build Go binary ─────────────────────────────
|
|
FROM golang:1.23-alpine AS go-builder
|
|
WORKDIR /src
|
|
COPY go.mod ./
|
|
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"]
|