FROM node:14-alpine as build

WORKDIR /code
COPY package.json tsconfig.docker.json ./
COPY src ./src
RUN npm i --non-interactive

RUN ./node_modules/.bin/tsc --project tsconfig.docker.json

FROM node:14-alpine as run

RUN set -ex; \
    apk update; \
    apk add --no-cache bash ca-certificates tini;

WORKDIR /code

COPY --from=build /code/package.json ./package.json
COPY --from=build /code/lib ./lib
COPY --from=build /code/node_modules ./node_modules

ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/node"]

CMD ["/code/lib/server.js"]
