oxynote/web/Dockerfile.dev
dependabot[bot] 1c1e9eafbf deps(docker): bump the safe group across 3 directories with 2 updates
Bumps the safe group with 2 updates in the /docker/prod directory: node and alpine.
Bumps the safe group with 1 update in the /server/auth-realtime directory: node.
Bumps the safe group with 1 update in the /web directory: node.


Updates `node` from 24.19.0-bookworm-slim to 24.20.0-bookworm-slim

Updates `alpine` from 3.23 to 3.24

Updates `node` from 24.19.0-bookworm-slim to 24.20.0-bookworm-slim

Updates `node` from 24.19.0-bookworm-slim to 24.20.0-bookworm-slim

Updates `node` from 24.19.0-alpine to 24.20.0-alpine

Updates `node` from 24.19.0-alpine to 24.20.0-alpine

Updates `node` from 24.19.0-alpine to 24.20.0-alpine

Updates `node` from 24.19.0-alpine to 24.20.0-alpine

Updates `node` from 24.19.0-alpine to 24.20.0-alpine

Updates `node` from 24.19.0-alpine to 24.20.0-alpine

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: '3.24'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: safe
- dependency-name: node
  dependency-version: 24.20.0-alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: safe
- dependency-name: node
  dependency-version: 24.20.0-alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: safe
- dependency-name: node
  dependency-version: 24.20.0-bookworm-slim
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: safe
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-31 13:53:29 +02:00

44 lines
1.4 KiB
Docker

FROM node:24.20.0-alpine AS base
FROM base AS builder
# the lezer-promql build script is a bash script; alpine only ships ash
RUN apk add --no-cache bash
RUN npm install -g pnpm
WORKDIR /app
# the vite client build exceeds node's default ~2GB heap
ENV NODE_OPTIONS="--max-old-space-size=4096"
# dependencies come from the manifests alone, so this layer survives every
# change that does not touch them — which is what makes a rebuild after an
# ordinary source edit cheap. Scripts are skipped here because the root
# `prepare` builds the promql grammar and runs `nuxt prepare`, and neither
# has its sources at this point.
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY packages/lezer-promql/package.json ./packages/lezer-promql/
RUN pnpm install --frozen-lockfile --ignore-scripts
COPY . .
# the dependency tree is already in place, so this install only runs the
# scripts skipped above (`prepare`, and the allowBuilds native packages).
# The node-server preset produces a self-contained SSR server in .output
# that reads NUXT_PUBLIC_* / NUXT_* runtime config from env at startup.
RUN pnpm install --frozen-lockfile && \
NITRO_PRESET=node-server pnpm run build:web
FROM base AS runner
WORKDIR /app
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nuxt
COPY --from=builder --chown=nuxt:nodejs /app/.output /app/.output
ENV NODE_ENV=production
USER nuxt
EXPOSE 3000
CMD ["node", "/app/.output/server/index.mjs"]