Files
theis.gaedigk 6be34c93aa refactor: edit tailwindcss classes and change code formatting, therefore added .prettierrc file
fix: frontend bug where the passwords won't be checked when the password is changed
2026-07-08 14:56:43 +02:00

47 lines
1.3 KiB
Docker

FROM node:22-alpine AS builder
WORKDIR /app
# Workspace manifests (npm workspaces need these present)
COPY package.json package-lock.json ./
COPY backend/package.json backend/
COPY frontend/package.json frontend/
COPY shared/package.json shared/
# Install all deps for the monorepo (includes devDeps for building)
RUN npm ci
# Copy sources required to build shared + backend
COPY shared/ shared/
COPY backend/ backend/
# Build shared (now produces dist/esm + dist/cjs + dist/types) and then backend
RUN npm run build --workspace=shared
RUN npm run build --workspace=backend
FROM node:22-alpine AS runner
ENV NODE_ENV=production
WORKDIR /app
# Workspace manifests again (so npm can install prod deps for backend + shared)
COPY package.json package-lock.json ./
COPY backend/package.json backend/
COPY frontend/package.json frontend/
COPY shared/package.json shared/
# Install prod deps only
RUN npm ci --omit=dev
# Copy runtime artifacts
COPY --from=builder /app/backend/dist backend/dist
COPY --from=builder /app/backend/database.scheme.sql backend/database.scheme.sql
# Copy the full shared dist output (esm/cjs/types)
COPY --from=builder /app/shared/dist shared/dist
COPY shared/package.json shared/package.json
EXPOSE 8004
WORKDIR /app/backend
CMD ["node", "dist/server.js"]