FROM public.ecr.aws/docker/library/node:14.21.3-alpine as base

FROM base as server

ENV NODE_ENV production
ARG STATIC_ROOT
ARG AUTH0_DOMAIN
ARG AUTH0_CLIENT_ID
ARG AUTH0_API_AUDIENCE
ARG SENTRY_DSN
ARG SENTRY_RELEASE_NAME
ARG SENTRY_AUTH_TOKEN
ARG YOUTUBE_ALLOWED_USER_IDS
ARG DUPLICATIONAPI_URI


RUN apk update \
    && apk add --no-cache build-base git tzdata gettext \
    && rm -rf /var/cache/apk/* \
    && npm install -g @sentry/cli@2.43.1 --unsafe-perm

WORKDIR /usr/src

COPY yarn.lock package.json .npmrc ./

RUN yarn && yarn cache clean

COPY . .

RUN envsubst < .sentryclirc.shadow > .sentryclirc 2>/dev/null \
    && yarn run build

EXPOSE 8080

CMD ["node", "src/server/main.js"]

FROM server as test

RUN yarn install --production=false # to install devDependencies
ENV PATH="/usr/src/node_modules/.bin:${PATH}"
ENV TZ="Etc/UTC"

VOLUME "/usr/src/reports"
