- Svelte 5 + SvelteKit + Tailwind 4 (VDE Katalog Template-Stil, AWL Dark Theme) - Fastify + Drizzle + MariaDB Backend (DB: leckerbuch auf 192.168.155.11) - Dual-Barcode-Scanner (ZXing + zbar-wasm parallel, aus HandyBarcodeScanner portiert) - Open Food Facts API-Proxy mit automatischer Laktose-Erkennung (Allergen-Flags + Schätztabelle) - Lactase-Dosisrechner (konfigurierbarer FCC/g-Faktor) - Produkt-CRUD, Laden-Verwaltung, Tags, Einstellungen - Docker-Setup (Dockerfile + docker-compose.yml) - Mobile-first PWA mit Bottom-Navigation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
27 lines
609 B
Docker
27 lines
609 B
Docker
FROM node:22-alpine AS web-build
|
|
WORKDIR /build/web
|
|
COPY web/package.json web/package-lock.json* ./
|
|
RUN npm install
|
|
COPY web/ .
|
|
RUN npm run build
|
|
|
|
FROM node:22-alpine AS api-build
|
|
WORKDIR /build/api
|
|
COPY api/package.json api/package-lock.json* ./
|
|
RUN npm install
|
|
COPY api/ .
|
|
RUN npm run build
|
|
|
|
FROM node:22-alpine
|
|
WORKDIR /app
|
|
|
|
COPY --from=api-build /build/api/package.json /build/api/package-lock.json* ./
|
|
RUN npm install --omit=dev
|
|
COPY --from=api-build /build/api/dist ./dist
|
|
COPY --from=web-build /build/web/build ./public
|
|
|
|
ENV NODE_ENV=production
|
|
ENV PORT=3300
|
|
EXPOSE 3300
|
|
|
|
CMD ["node", "dist/index.js"]
|