Files
signalledger.nl/Dockerfile
T
claw abf29e61de
Build and Deploy / build-and-test (push) Failing after 3m37s
Build and Deploy / build-image (push) Has been skipped
Build and Deploy / deploy (push) Has been skipped
feat: initial CI/CD pipeline, Dockerfile, K8s manifests, build+test scripts
2026-05-31 13:31:56 +00:00

39 lines
881 B
Docker

# Build stage
FROM node:22-alpine AS builder
WORKDIR /app
# Copy package files and install dependencies
COPY package*.json ./
RUN npm ci
# Copy source and build
COPY . .
RUN npm run build
# Production stage — nginx serving static files
FROM nginx:alpine
# Copy built site
COPY --from=builder /app/dist /usr/share/nginx/html
# Copy ads.txt if present at root
COPY --from=builder /app/ads.txt /usr/share/nginx/html/ads.txt
# Custom nginx config for SPA/history routing
RUN echo 'server { \
listen 80; \
server_name localhost; \
root /usr/share/nginx/html; \
index index.html; \
location / { \
try_files $uri $uri/ /index.html; \
} \
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ { \
expires 1y; \
add_header Cache-Control "public, immutable"; \
} \
}' > /etc/nginx/conf.d/default.conf
EXPOSE 80