mirror of
https://github.com/aculix/negotium.git
synced 2026-09-11 07:28:17 +00:00
d4ddceaf73
Groundwork before pulling logic out of App.svelte. Vitest runs in a node environment. Nothing under test needs a DOM, because every module takes its dependencies as arguments. package-lock.json is tracked now and the Dockerfile installs with npm ci, so the nightly rebuild can't quietly land on different versions. .gitignore: .DS_Store was anchored to the root and missed nested copies, and dist/ wasn't ignored at all.
31 lines
566 B
Docker
31 lines
566 B
Docker
# Build stage
|
|
FROM node:20-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package files
|
|
COPY package*.json ./
|
|
|
|
# Install from the committed lockfile so builds are reproducible
|
|
RUN npm ci --include=optional
|
|
|
|
# Copy source code
|
|
COPY . .
|
|
|
|
# Build the application
|
|
RUN npm run build
|
|
|
|
# Production stage
|
|
FROM nginx:alpine
|
|
|
|
# Copy built files from builder stage
|
|
COPY --from=builder /app/dist /usr/share/nginx/html
|
|
|
|
# Copy nginx configuration (if needed)
|
|
# COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
|
|
# Expose port 80
|
|
EXPOSE 80
|
|
|
|
# Start nginx
|
|
CMD ["nginx", "-g", "daemon off;"] |