FROM node:18-alpine WORKDIR /usr/src/app COPY package*.json ./ RUN npm install --omit=dev COPY . . RUN mkdir -p logs uploads RUN chown -R node:node /usr/src/app USER node EXPOSE 3005 HEALTHCHECK --interval=30s --timeout=3s --start-period=20s --retries=3 \ CMD node -e "require('http').get('http://localhost:3005/api/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1); })" CMD ["node", "index.js"]