FROM    public.ecr.aws/lambda/nodejs:16 AS builder

COPY    --from=public.ecr.aws/datadog/lambda-extension:20 /opt/extensions/ /opt/extensions

# Add Sentry Lambda extension
COPY    --from=public.ecr.aws/sentry/sentry-node-serverless-sdk:28 /opt/ /opt
ENV     DD_LAMBDA_HANDLER=app.handler

ARG     PACKAGECLOUD_USER
ARG     GITHUB_TOKEN

RUN     yum -y install shadow-utils
RUN     npm install -g yarn

RUN     /usr/sbin/useradd -c 'lambda user' -m -d /home/lambdauser -s /bin/bash lambdauser
RUN     chown -R lambdauser:lambdauser /var/task

USER    lambdauser
COPY    --chown=lambdauser:lambdauser scripts/setup.sh .npmrc.shadow package.json yarn.lock ./
RUN     --mount=type=secret,id=tokens,uid=1000 chmod +x ./setup.sh && ./setup.sh


FROM    builder

COPY    --chown=lambdauser:lambdauser tsconfig.json tsconfig.build.json ./
COPY    --chown=lambdauser:lambdauser src ./src

RUN     yarn build

CMD    [ "node_modules/datadog-lambda-js/dist/handler.handler" ]
