mirror of
https://github.com/khairul169/garage-webui.git
synced 2025-04-27 22:39:31 +07:00
35 lines
755 B
Docker
35 lines
755 B
Docker
FROM node:20-slim AS base
|
|
WORKDIR /app
|
|
|
|
ENV PNPM_HOME="/pnpm"
|
|
ENV PATH="$PNPM_HOME:$PATH"
|
|
RUN corepack enable
|
|
|
|
FROM base AS frontend
|
|
COPY package.json pnpm-lock.yaml ./
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
|
|
|
COPY . .
|
|
RUN pnpm run build
|
|
|
|
FROM base AS backend-deps
|
|
COPY backend/package.json backend/pnpm-lock.yaml ./
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install -prod --frozen-lockfile
|
|
COPY backend .
|
|
|
|
FROM oven/bun:alpine AS backend
|
|
WORKDIR /app
|
|
COPY --from=backend-deps /app .
|
|
RUN bun run build
|
|
|
|
FROM oven/bun:alpine
|
|
WORKDIR /app
|
|
|
|
ENV NODE_ENV=production
|
|
ENV DIST_ROOT=./dist
|
|
|
|
COPY --from=frontend /app/dist /app/dist
|
|
COPY --from=backend /app/dist /app
|
|
|
|
ENTRYPOINT [ "bun" , "run", "main.js" ]
|