FROM node:18-alpine

WORKDIR /app

COPY package*.json ./
# Soften npm network timeouts/retries to better tolerate slow registries in CI/builds
RUN npm config set fetch-retries 5 \
    && npm config set fetch-retry-mintimeout 20000 \
    && npm config set fetch-retry-maxtimeout 120000 \
    && npm config set fetch-timeout 120000 \
    && npm ci --omit=dev

COPY . .

# Ensure upload directory exists
RUN mkdir -p storage public

EXPOSE 5000

CMD ["node", "index.js"]
