FROM node:22-alpine WORKDIR /app RUN apk add --no-cache curl COPY docker/ui/package.json docker/ui/package-lock.json* ./ RUN npm ci 2>/dev/null || npm install COPY docker/ui/ . EXPOSE 80 CMD ["npm", "run", "dev"]