28 lines
995 B
Docker
28 lines
995 B
Docker
FROM node:22-alpine AS build
|
|
WORKDIR /app
|
|
ENV CI=1
|
|
COPY package*.json ./
|
|
COPY apps/web/package.json apps/web/package.json
|
|
COPY packages/features/builder/package.json packages/features/builder/package.json
|
|
COPY packages/features/recipes/package.json packages/features/recipes/package.json
|
|
COPY packages/shared/i18n/package.json packages/shared/i18n/package.json
|
|
COPY packages/shared/privacy/package.json packages/shared/privacy/package.json
|
|
RUN npm ci --no-audit --no-fund
|
|
COPY . .
|
|
RUN node scripts/build-recipes.mjs
|
|
|
|
# Vite : les VITE_* sont injectées au build (CapRover : build args ou CI avec --build-arg).
|
|
ARG VITE_MATOMO_URL=
|
|
ARG VITE_MATOMO_SITE_ID=
|
|
ENV VITE_MATOMO_URL=${VITE_MATOMO_URL}
|
|
ENV VITE_MATOMO_SITE_ID=${VITE_MATOMO_SITE_ID}
|
|
RUN npm run build:web
|
|
|
|
FROM node:22-alpine AS runtime
|
|
WORKDIR /app
|
|
ENV NODE_ENV=production
|
|
COPY --from=build /app/apps/web/dist ./dist
|
|
RUN npm install -g serve@14.2.4 --omit=dev --no-audit --no-fund
|
|
EXPOSE 3000
|
|
CMD ["serve", "-s", "dist", "-l", "3000"]
|