FROM node:23-alpine # Switch to non-root user USER node COPY --chown=node:node package*.json ./ # Install dependencies RUN npm install # Copy application files with correct ownership COPY --chown=node:node main.js util.js worker.js ./ # Create logs directory with correct permissions RUN mkdir -p app/logs && chown -R node:node app # Expose logs directory as a volume VOLUME ["/home/node/app/logs"] # Use an environment variable for thread count (default to 0 to use auto) ENV THREAD_COUNT=0 # Run the application - using JSON array format CMD ["sh", "-c", "node main.js ${THREAD_COUNT}"]