FROM node:20.15.1-alpine AS builder

WORKDIR /app/builder
COPY package.json .
COPY package-lock.json .
RUN npm install

COPY . .

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" ]