30 lines
506 B
Docker
30 lines
506 B
Docker
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"]
|