FROM node:24-alpine AS frontend-builder WORKDIR /app/frontend COPY frontend/package.json ./ RUN npm install COPY frontend ./ RUN npm run build FROM golang:1.25-alpine AS backend-builder WORKDIR /app/backend COPY backend/go.mod ./ RUN go mod download COPY backend ./ COPY --from=frontend-builder /app/frontend/dist ./web/dist RUN go build -o /out/fastfileviewer ./cmd/server FROM alpine:3.22 WORKDIR /app ENV PORT=7860 COPY --from=backend-builder /out/fastfileviewer /app/fastfileviewer COPY --from=backend-builder /app/backend/web/dist /app/web/dist EXPOSE 7860 CMD ["/app/fastfileviewer"]