FROM node:20-alpine AS builder

WORKDIR /app
COPY package*.json ./
RUN npm install -g yarn --force && yarn install --frozen-lockfile --production=false --cache-folder /yarn-cache && yarn cache clean --force && rm -rf /yarn-cache /tmp/*
COPY . .
# RUN yarn build # Uncomment if you have a build step

FROM node:20-alpine

WORKDIR /app
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/yarn.lock ./
RUN npm install -g yarn --force && yarn install --frozen-lockfile --production --cache-folder /yarn-cache && yarn cache clean --force && rm -rf /yarn-cache /tmp/*
COPY --from=builder /app/ .

EXPOSE 3000
CMD ["node", "run", "dev", "-p", "3000"] #or node dist/index.js if you built the project.