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

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

RUN     dnf -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 .npmrc package.json yarn.lock ./
RUN     --mount=type=secret,id=GITHUB_NPM_TOKEN,required=true,uid=1000 export GITHUB_NPM_TOKEN=$(cat /run/secrets/GITHUB_NPM_TOKEN) && yarn install --ignore-optional && yarn cache clean

USER    root
RUN     mkdir -p /opt/sentry-extension /opt/extensions && \
        cp /var/task/node_modules/@sentry/aws-serverless/build/lambda-extension/sentry-extension /opt/extensions/sentry-extension && \
        cp /var/task/node_modules/@sentry/aws-serverless/build/lambda-extension/index.mjs /opt/sentry-extension/index.mjs && \
        chmod +x /opt/extensions/sentry-extension /opt/sentry-extension/index.mjs
USER    lambdauser

FROM    builder

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

RUN     --mount=type=secret,id=GITHUB_NPM_TOKEN,required=true,uid=1000 GITHUB_NPM_TOKEN=$(cat /run/secrets/GITHUB_NPM_TOKEN) yarn build

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