FROM golang:1.24-alpine AS go-builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY cmd/ cmd/ COPY internal/ internal/ RUN CGO_ENABLED=0 GOOS=linux go build -o /bin/dumpster-server ./cmd/server FROM node:22-alpine AS web-builder WORKDIR /app COPY web/package.json web/package-lock.json ./ RUN npm ci --include=dev COPY web/ . RUN npm run build FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /app COPY --from=go-builder /bin/dumpster-server /app/dumpster-server COPY --from=web-builder /app/dist /srv/web EXPOSE 8080 CMD ["/app/dumpster-server"]