mirror of
https://github.com/sortedcord/omnia.git
synced 2026-07-22 03:52:48 +05:30
60 lines
2.1 KiB
Docker
60 lines
2.1 KiB
Docker
FROM node:22-slim AS base
|
|
ENV PNPM_HOME="/pnpm" \
|
|
PATH="$PNPM_HOME:$PATH"
|
|
RUN corepack enable && corepack prepare pnpm@11.15.1 --activate
|
|
WORKDIR /app
|
|
|
|
FROM base AS build-deps
|
|
RUN apt-get update -qq && \
|
|
apt-get install -qq -y --no-install-recommends \
|
|
python3 make g++ && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
COPY package.json tsconfig.json tsconfig.base.json ./
|
|
COPY apps/gui/package.json apps/gui/package.json
|
|
COPY apps/gui/tsconfig.json apps/gui/tsconfig.json
|
|
COPY apps/gui/next.config.ts apps/gui/next.config.ts
|
|
COPY apps/gui/postcss.config.mjs apps/gui/postcss.config.mjs
|
|
COPY apps/gui/components.json apps/gui/components.json
|
|
COPY packages/actor/package.json packages/actor/package.json
|
|
COPY packages/architect/package.json packages/architect/package.json
|
|
COPY packages/core/package.json packages/core/package.json
|
|
COPY packages/intent/package.json packages/intent/package.json
|
|
COPY packages/llm/package.json packages/llm/package.json
|
|
COPY packages/memory/package.json packages/memory/package.json
|
|
COPY packages/scenario/package.json packages/scenario/package.json
|
|
COPY packages/spatial/package.json packages/spatial/package.json
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
|
|
pnpm install --frozen-lockfile
|
|
|
|
FROM build-deps AS pkg-builder
|
|
COPY packages/ ./packages/
|
|
RUN pnpm build
|
|
|
|
FROM pkg-builder AS gui-builder
|
|
COPY apps/gui/src ./apps/gui/src
|
|
COPY apps/gui/public ./apps/gui/public
|
|
RUN pnpm --filter @omnia/gui build
|
|
|
|
FROM base AS runner
|
|
ENV NODE_ENV=production
|
|
RUN apt-get update -qq && \
|
|
apt-get install -qq -y --no-install-recommends \
|
|
python3 make g++ && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=gui-builder /app/package.json /app/pnpm-workspace.yaml ./
|
|
COPY --from=gui-builder /app/node_modules ./node_modules
|
|
COPY --from=gui-builder /app/packages ./packages
|
|
COPY --from=gui-builder /app/apps/gui/package.json \
|
|
/app/apps/gui/next.config.ts \
|
|
/app/apps/gui/postcss.config.mjs \
|
|
./apps/gui/
|
|
COPY --from=gui-builder /app/apps/gui/.next ./apps/gui/.next
|
|
COPY --from=gui-builder /app/apps/gui/public ./apps/gui/public
|
|
|
|
WORKDIR /app/apps/gui
|
|
EXPOSE 3000
|
|
CMD ["pnpm", "start"]
|