FROM node:16.17.0 as base

ARG SENTRY_AUTH_TOKEN
ARG SENTRY_DSN
ARG SENTRY_URL

ARG AUTH0_DOMAIN_DEV
ARG AUTH0_CLIENT_ID_DEV
ARG AUTH0_CLIENT_SECRET_DEV
ARG AUTH0_AUDIENCE_DEV

ARG AUTH0_DOMAIN_PROD
ARG AUTH0_CLIENT_ID_PROD
ARG AUTH0_CLIENT_SECRET_PROD
ARG AUTH0_AUDIENCE_PROD

ARG AMPLITUDE_KEY_DEV
ARG AMPLITUDE_KEY_PROD

ARG SPLIT_IO_KEY_DEV
ARG SPLIT_IO_KEY_PROD


RUN apt update \
    && DEBIAN_FRONTEND=noninteractive apt install -y ca-certificates curl \
    && npm config set unsafe-perm=true \
    && npm install -g expo-cli eas-cli

USER node

WORKDIR /home/node/workspace

# This hack is widely applied to avoid python printing issues in docker containers.
# See: https://github.com/Docker-Hub-frolvlad/docker-alpine-python3/pull/13
ENV PYTHONUNBUFFERED=1

ENV SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN}
ENV SENTRY_DSN=${SENTRY_DSN}
ENV SENTRY_URL=${SENTRY_URL}

ENV AUTH0_DOMAIN_DEV=${AUTH0_DOMAIN_DEV}
ENV AUTH0_CLIENT_ID_DEV=${AUTH0_CLIENT_ID_DEV}
ENV AUTH0_CLIENT_SECRET_DEV=${AUTH0_CLIENT_SECRET_DEV}
ENV AUTH0_AUDIENCE_DEV=${AUTH0_AUDIENCE_DEV}

ENV AUTH0_DOMAIN_PROD=${AUTH0_DOMAIN_PROD}
ENV AUTH0_CLIENT_ID_PROD=${AUTH0_CLIENT_ID_PROD}
ENV AUTH0_CLIENT_SECRET_PROD=${AUTH0_CLIENT_SECRET_PROD}
ENV AUTH0_AUDIENCE_PROD=${AUTH0_AUDIENCE_PROD}

ENV AMPLITUDE_KEY_DEV=${AMPLITUDE_KEY_DEV}
ENV AMPLITUDE_KEY_PROD=${AMPLITUDE_KEY_PROD}

ENV SPLIT_IO_KEY_DEV=${SPLIT_IO_KEY_DEV}
ENV SPLIT_IO_KEY_PROD=${SPLIT_IO_KEY_PROD}

COPY package.json yarn.lock ./

RUN yarn

COPY . .
