FROM node:22
LABEL authors="protokit.dev"

WORKDIR /src

COPY package*.json .
# This sucks
COPY ./packages/api/package.json ./packages/api/package.json
COPY ./packages/common/package.json ./packages/common/package.json
COPY ./packages/deployment/package.json ./packages/deployment/package.json
COPY ./packages/indexer/package.json ./packages/indexer/package.json
COPY ./packages/library/package.json ./packages/library/package.json
COPY ./packages/module/package.json ./packages/module/package.json
COPY ./packages/persistance/package.json ./packages/persistance/package.json
COPY ./packages/protocol/package.json ./packages/protocol/package.json
COPY ./packages/sdk/package.json ./packages/sdk/package.json
COPY ./packages/sequencer/package.json ./packages/sequencer/package.json
COPY ./packages/stack/package.json ./packages/stack/package.json

RUN npm ci

COPY ./packages/ ./packages
# Copy all files on the top level
COPY ./lerna.json .
COPY ./tsconfig.json .

RUN npm run build

EXPOSE 8080

COPY ./packages/deployment/docker/base/entry.sh ./entry.sh

ENTRYPOINT ["./entry.sh"]
