FROM node:20.15.1-alpine AS builder

WORKDIR /app/builder

COPY . .

RUN npm install
RUN npm run build

FROM node:20.15.1-alpine

ENV OTEL_TRACES_EXPORTER="otlp"
ENV OTEL_METRICS_EXPORTER="otlp"
ENV OTEL_LOGS_EXPORTER="otlp"
ENV NODE_OPTIONS="--require @opentelemetry/auto-instrumentations-node/register"

# To setup your own Service Instance ID
ENV OTEL_RESOURCE_ATTRIBUTES="service.instance.id=avicenna.data-connector"
# ENV OTEL_NODE_RESOURCE_DETECTORS="env,host,os"

# To have a Service Instance ID generated using a random UUID
# Requires auto-instrumentations-node version 0.46.0+
ENV OTEL_NODE_RESOURCE_DETECTORS="env,host,os,serviceinstance,container"

WORKDIR /app

COPY --from=builder /app/builder/node_modules ./node_modules
COPY --from=builder /app/builder/prisma ./prisma
COPY --from=builder /app/builder/dist .
COPY --from=builder /app/builder/docker-entrypoint.sh .

ENTRYPOINT [ "./docker-entrypoint.sh" ]

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