# syntax=docker/dockerfile:1
FROM node:16-alpine as base
WORKDIR /app

FROM base as deps

RUN apk add --update alpine-sdk && apk add linux-headers
RUN apk add --update --no-cache python3 py3-pip && ln -sf python3 /usr/bin/python

COPY package.json ./
COPY yarn.lock ./

RUN yarn install --production

FROM deps as builder

COPY . .

RUN yarn build

FROM builder as development

CMD ["yarn", "start:dev"]

FROM base as production

USER node

ENV NODE_ENV production

COPY --from=builder /app/dist /app/dist
COPY --from=deps /app/node_modules /app/node_modules

CMD ["node", "dist/main"]