diff --git a/Dockerfile b/Dockerfile index c2f8508..46f26b0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,32 +1,23 @@ # Build stage FROM --platform=linux/amd64 node:20-alpine as build -ARG NODE_ENV=production -ENV NODE_ENV=${NODE_ENV} WORKDIR /app -# System dependencies with enhanced build tools +# Essential build dependencies only RUN apk add --no-cache python3 make g++ curl git libc6-compat -# Clean and prepare npm -RUN npm cache clean --force -RUN npm install -g npm@latest - # Install dependencies from package.json COPY package*.json ./ -RUN npm ci && npm audit fix --force +RUN npm ci RUN npm install -g typescript -# Copy source code and build +# Build production assets COPY . . RUN npm run build -# Production stage with Nginx +# Production stage - static files only FROM nginx:alpine COPY --from=build /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf -HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ - CMD curl -f http://localhost/ || exit 1 - EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]