FROM node:14 as build

WORKDIR /usr/src/app

COPY package.json .
COPY yarn.lock .

COPY api/package.json ./api/package.json

# shared package manifests
COPY jobqueue/shared/package.json ./jobqueue/shared/package.json
COPY jobqueue/producer/package.json ./jobqueue/producer/package.json

RUN yarn install --pure-lockfile --non-interactive

# copy shared packages
COPY jobqueue/shared ./jobqueue/shared
COPY jobqueue/producer ./jobqueue/producer

# build shared packages
RUN yarn workspace api build:deps

COPY api/ ./api

# build service
RUN yarn workspace api build

FROM node:14

WORKDIR /usr/src/app

COPY --from=build /usr/src/app ./

EXPOSE 8000

WORKDIR /usr/src/app/api

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