Files
NexaDash/docker/web.Dockerfile
T
nessi d694c8b8e3 Add project scaffolding and documentation
Add .env.example with configuration for database, Redis, security, SMTP, workers, and plugins. Add .gitignore for Python, Node.js, Next.js, Docker volumes, and IDE files. Add MIT License. Update README.md with feature overview, quick start guide, architecture description, plugin system documentation, security details, backup/restore instructions, and developer setup. Add Alembic configuration files and placeholder directories for API, web, worker, and plugin components
2026-06-21 09:31:47 +02:00

42 lines
1.1 KiB
Docker

FROM node:20-alpine AS base
WORKDIR /app
RUN apk add --no-cache libc6-compat
FROM base AS deps
COPY package.json pnpm-lock.yaml* pnpm-workspace.yaml* /app/
COPY apps/web/package.json /app/apps/web/
COPY packages/shared/package.json /app/packages/shared/
COPY packages/ui/package.json /app/packages/ui/
COPY packages/plugin-sdk/package.json /app/packages/plugin-sdk/
RUN npm install -g pnpm && pnpm install --frozen-lockfile
FROM base AS builder
COPY --from=deps /app/node_modules /app/node_modules
COPY . /app
RUN npm install -g pnpm && pnpm --filter @nexadash/web build
FROM base AS runner
ENV NODE_ENV=production
RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 nextjs
COPY --from=builder /app/apps/web/public /app/apps/web/public
COPY --from=builder /app/apps/web/.next/standalone /app/apps/web/
COPY --from=builder /app/apps/web/.next/static /app/apps/web/.next/static
COPY --from=builder /app/apps/web/healthcheck.js /app/apps/web/healthcheck.js
USER nextjs
EXPOSE 3000
ENV PORT=3000
ENV HOSTNAME="0.0.0.0"
WORKDIR /app/apps/web
CMD ["node", "server.js"]