FROM node:18-alpine as builder WORKDIR /app # Copy package files first for better caching COPY package*.json ./ # Clean npm cache and install dependencies with specific flags to avoid errors RUN npm cache clean --force && \ npm install --production --no-optional && \ npm install mocha # Copy the rest of the application COPY . . # Make sure app.sh is executable RUN chmod +x app.sh # Build assets RUN node update-js.js FROM node:18-alpine WORKDIR /app # Copy from builder stage COPY --from=builder /app . # Set environment variables ENV NODE_ENV=production \ HASTEBIN_ENABLE_CSP=true \ HASTEBIN_ENABLE_HSTS=true # Expose port EXPOSE 7777 # Use app.sh script as entry point CMD ["/app/app.sh"]