FROM node:20-alpine

WORKDIR /pma

COPY --chown=node:node ./package.json ./yarn.lock /pma/
COPY --chown=node:node ./client/package.json ./client/yarn.lock /client/

WORKDIR /client
RUN NODE_ENV=development yarn install

COPY --chown=node:node ./api /pma
COPY --chown=node:node ./client /client

RUN yarn run build

RUN cp -r /client/dist /pma/dist

WORKDIR /pma
RUN yarn install --production --frozen-lockfile

RUN chown -R node:node /pma

ENV NODE_ENV=production

USER node
EXPOSE 3000

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