FROM node:22-alpine as builder # Install git and other dependencies RUN apk add --no-cache git # Clone the repository RUN git clone --depth 1 https://git.nixc.us/Nixius/hastebin.git /app WORKDIR /app # Clean npm cache and install dependencies with better error handling RUN npm cache clean --force && \ npm install --production --no-optional && \ chmod +x app.sh # Build assets if needed RUN node update-js.js || echo "No update-js.js script found" FROM node:22-alpine WORKDIR /app # Copy from builder stage COPY --from=builder /app . # Install mocha in the final image RUN npm install mocha # Set environment variables ENV NODE_ENV=production \ HASTEBIN_ENABLE_CSP=true \ HASTEBIN_ENABLE_HSTS=true \ HASTEBIN_ENABLE_CROSS_ORIGIN_ISOLATION=true # Expose port EXPOSE 7777 # Use app.sh script as entry point CMD ["/app/app.sh"]