FROM node:20-alpine WORKDIR /app # Create non-root user first RUN addgroup -g 1001 -S nodejs && \ adduser -S nodejs -u 1001 # Copy package files COPY package*.json ./ # Install dependencies RUN npm ci --only=production # Copy server code and fix ownership COPY --chown=nodejs:nodejs server.js verify-token.js ./ # Create data directory for persistence and set ownership RUN mkdir -p /app/data && chown -R nodejs:nodejs /app USER nodejs EXPOSE 3001 CMD ["node", "server.js"]