FROM node:20 as build

WORKDIR /build

# Setup Packagecloud Backtrace repository
RUN curl -s https://019021a2eeed2fc18d18ba91a8f99dc264b585a89ad5e652:@packagecloud.io/install/repositories/backtrace/internal/script.node.sh?package_id=7517226 | bash

# Install dependencies
COPY ./package.json ./package-lock.json ./
RUN npm ci

# Build the service
COPY ./tsconfig.json ./
COPY ./src ./src
RUN npm run build

# Upload sourcemaps to Backtrace
COPY ./.backtracejsrc ./
RUN npx backtrace-js run

FROM node:20 as service

WORKDIR /service

# Setup Packagecloud Backtrace repository
RUN curl -s https://019021a2eeed2fc18d18ba91a8f99dc264b585a89ad5e652:@packagecloud.io/install/repositories/backtrace/internal/script.node.sh?package_id=7517226 | bash

# Install production dependencies
COPY ./package.json ./package-lock.json ./
RUN npm ci --omit=dev

# Copy built code from build stage
COPY --from=build /build/lib ./lib

# Copy runtime dependencies and license
COPY ./scheduled-reports.conf ./LICENSE ./

CMD ["npm", "run", "start"]
