FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 # CI=false keeps the CRA dev server running (no TTY in Docker = CI-like environment) ENV CI=false CMD ["npm", "run", "dev"]