| 12345678910111213141516171819202122232425262728293031323334 |
- # syntax=docker/dockerfile:1.7
- FROM node:22-bookworm-slim AS frontend-build
- WORKDIR /src
- COPY frontend/package.json frontend/package-lock.json ./frontend/
- RUN npm --prefix frontend ci
- COPY frontend ./frontend
- RUN mkdir -p /src/internal/web && npm --prefix frontend run build
- FROM golang:1.25-bookworm AS backend-build
- WORKDIR /src
- COPY go.mod go.sum ./
- RUN go mod download
- COPY cmd ./cmd
- COPY internal ./internal
- COPY --from=frontend-build /src/internal/web/static ./internal/web/static
- RUN CGO_ENABLED=0 go build -trimpath -ldflags='-s -w' -o /out/viewer ./cmd/viewer
- FROM gcr.io/distroless/static-debian12:nonroot
- WORKDIR /app
- COPY --from=backend-build /out/viewer /app/viewer
- ENV PORT=8080 \
- CACHE_DIR=/tmp/viewer-cache/images \
- ZIP_CACHE_DIR=/tmp/viewer-cache/zips
- EXPOSE 8080
- ENTRYPOINT ["/app/viewer"]
|