mirror of
https://github.com/9technologygroup/patchmon.net.git
synced 2026-01-04 12:09:39 -06:00
The trianglify package depends on canvas, which tries to build native binaries requiring Python and build tools. Since canvas is not actually needed for the browser build (trianglify uses it only server-side), we can skip all install scripts with --ignore-scripts to avoid the build failure. This fixes the ARM64 and AMD64 frontend builds.
44 lines
898 B
Docker
44 lines
898 B
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 --omit=dev --ignore-scripts --legacy-peer-deps --no-audit --prefer-online --fetch-retries=0
|
|
|
|
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;"]
|