diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..acdddc1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +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 + +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/music-downloader + +EXPOSE 5000 + +ENTRYPOINT ["/app/music-downloader"] diff --git a/Justfile b/Justfile index a661c94..19ffaf5 100644 --- a/Justfile +++ b/Justfile @@ -1,3 +1,9 @@ dev: cd web && pnpm run build go run . + +build tag="latest": + docker build -t git.zatch.ru/tsivinsky/music-downloader:{{tag}} . + +push tag="latest": + docker push git.zatch.ru/tsivinsky/music-downloader:{{tag}}