mirror of
https://github.com/9technologygroup/patchmon.net.git
synced 2026-01-06 04:59:35 -06:00
The 'i.from is not a function' error occurs because trianglify depends on canvas, and --ignore-scripts prevented canvas from installing properly. Solution: Remove --ignore-scripts and allow npm to run install scripts, but gracefully handle canvas rebuild failures since native bindings are optional for the production build.
45 lines
1.0 KiB
Docker
45 lines
1.0 KiB
Docker
# Development target
|
|
FROM node:lts-alpine AS development
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package*.json ./
|
|
COPY frontend/ ./frontend/
|
|
|
|
RUN npm ci --ignore-scripts
|
|
|
|
WORKDIR /app/frontend
|
|
|
|
EXPOSE 3000
|
|
|
|
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "3000"]
|
|
|
|
# Builder stage for production
|
|
FROM node:lts-alpine AS builder
|
|
|
|
WORKDIR /app/frontend
|
|
|
|
COPY frontend/package*.json ./
|
|
|
|
RUN npm cache clean --force &&\
|
|
rm -rf node_modules ~/.npm /root/.npm &&\
|
|
npm install --legacy-peer-deps --no-audit --prefer-online --fetch-retries=3 --fetch-retry-mintimeout=20000 --fetch-retry-maxtimeout=120000 &&\
|
|
(npm rebuild canvas || echo "Canvas rebuild failed, continuing without native bindings")
|
|
|
|
COPY frontend/ ./
|
|
|
|
RUN npm run build
|
|
|
|
# Production stage
|
|
FROM nginxinc/nginx-unprivileged:alpine
|
|
|
|
ENV BACKEND_HOST=backend \
|
|
BACKEND_PORT=3001
|
|
|
|
COPY --from=builder /app/frontend/dist /usr/share/nginx/html
|
|
COPY docker/nginx.conf.template /etc/nginx/templates/default.conf.template
|
|
|
|
EXPOSE 3000
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|