Files
GMW/infra/docker/Dockerfile.frontend
T

42 lines
1.1 KiB
Docker
Raw Normal View History

FROM node:22-alpine
WORKDIR /app
# Install pnpm
RUN npm install -g pnpm
# Copy workspace files
COPY pnpm-workspace.yaml .
COPY pnpm-lock.yaml .
COPY package.json .
# Copy workspace packages
COPY packages/shared ./packages/shared
# Copy vendor packages (workspace dependencies)
COPY vendor/discord.js-selfbot-v13 ./vendor/discord.js-selfbot-v13
COPY vendor/discord-video-stream ./vendor/discord-video-stream
COPY vendor/better-sqlite3 ./vendor/better-sqlite3
COPY vendor/drizzle-orm ./vendor/drizzle-orm
# Copy root source (root package is a workspace member — needed for pnpm install)
COPY src ./src
COPY vite.backend.config.ts .
# Copy services
COPY services/frontend ./services/frontend
COPY services/backend ./services/backend
COPY services/discord-gateway ./services/discord-gateway
# Install dependencies
RUN pnpm install --frozen-lockfile
# Build frontend
RUN pnpm --filter './services/frontend' run build
# Expose port (served by backend)
EXPOSE 3000
# Start frontend (production preview)
CMD ["pnpm", "--filter", "./services/frontend", "run", "preview", "--", "--host", "0.0.0.0"]