- Systeme de themes adaptatifs : Peps (light chaud), Zen (light calme), Chagrine (dark violet), Grave (dark ambre) avec CSS custom properties - Dashboard d'accueil orienté onboarding avec cartes-portes et teaser boite a outils - SectionLayout reutilisable : liste + sidebar toolbox + status pills cliquables (En prepa / En vote / En vigueur / Clos) - ToolboxVignette : vignettes Contexte / Tutos / Choisir / Demarrer - Seed : Acte engagement certification + forgeron, Runtime Upgrade (decision on-chain), 3 modalites de vote (majoritaire, quadratique, permanent) - Backend adapte SQLite (Uuid portable, 204 fix, pool conditionnel) - Correction noms composants (pathPrefix: false), pinia/nuxt ^0.11 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
52 lines
1.4 KiB
Docker
52 lines
1.4 KiB
Docker
# syntax = docker/dockerfile:1
|
|
|
|
ARG NODE_VERSION=20-slim
|
|
|
|
FROM node:${NODE_VERSION} AS base
|
|
|
|
WORKDIR /src
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends curl && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# ── Build ─────────────────────────────────────────────────────────────────────
|
|
FROM base AS build
|
|
|
|
ENV NODE_ENV=development
|
|
|
|
COPY frontend/package.json frontend/package-lock.json* ./
|
|
RUN npm ci
|
|
|
|
COPY frontend/ .
|
|
RUN npm run build
|
|
|
|
# ── Production ────────────────────────────────────────────────────────────────
|
|
FROM base AS production
|
|
|
|
ENV PORT=3000 \
|
|
NODE_ENV=production
|
|
|
|
COPY --from=build /src/.output /src/.output
|
|
|
|
EXPOSE $PORT
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
|
|
CMD curl -f http://localhost:${PORT}/ || exit 1
|
|
|
|
CMD ["node", ".output/server/index.mjs"]
|
|
|
|
# ── Development ───────────────────────────────────────────────────────────────
|
|
FROM base AS development
|
|
|
|
ENV NODE_ENV=development
|
|
|
|
WORKDIR /app
|
|
|
|
COPY frontend/package.json ./
|
|
RUN npm install
|
|
|
|
EXPOSE 3002
|
|
|
|
CMD ["npm", "run", "dev"]
|