FROM node:25-alpine AS web-builder WORKDIR /app RUN npm i -g pnpm COPY ./web/package.json ./web/pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile COPY ./web/ ./ RUN pnpm build FROM golang:1.26-alpine AS api-builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod verify && go mod download COPY . . COPY --from=web-builder /app/dist ./web/dist RUN go build -o music-dl . FROM alpine:latest WORKDIR /app COPY --from=api-builder /app/music-dl /app/music-dl EXPOSE 5000 ENTRYPOINT ["/app/music-dl"]