32 lines
553 B
Docker
32 lines
553 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.25-alpine AS api-builder
|
|
WORKDIR /app
|
|
|
|
RUN apk add --no-cache gcc musl-dev
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go mod verify && go mod download
|
|
|
|
COPY . .
|
|
COPY --from=web-builder /app/dist ./web/dist
|
|
|
|
RUN CGO_ENABLED=1 go build -o tvqueue .
|
|
|
|
FROM alpine:latest
|
|
WORKDIR /app
|
|
|
|
COPY --from=api-builder /app/tvqueue /app/tvqueue
|
|
|
|
EXPOSE 5000
|
|
|
|
ENTRYPOINT ["/app/tvqueue"]
|