hyperdx/packages/api/Dockerfile
2024-12-06 16:27:23 -08:00

50 lines
1.1 KiB
Docker

## base #############################################################################################
FROM node:18.20.3-alpine AS base
WORKDIR /app
COPY .yarn ./.yarn
COPY .yarnrc.yml yarn.lock ./packages/api/jest.config.js ./packages/api/tsconfig.json ./packages/api/package.json ./
RUN yarn install && yarn cache clean
## dev #############################################################################################
FROM base AS dev
EXPOSE 8000
ENTRYPOINT ["yarn"]
CMD ["dev"]
## builder #########################################################################################
FROM base AS builder
COPY ./packages/api/src ./src
RUN yarn run build
## prod ############################################################################################
FROM node:18.20.3-alpine AS prod
ARG CODE_VERSION
ENV CODE_VERSION=$CODE_VERSION
ARG PORT
ENV PORT=$PORT
EXPOSE ${PORT}
USER node
WORKDIR /app
COPY --chown=node:node --from=builder /app/build ./build
COPY --chown=node:node --from=base /app/node_modules ./node_modules
ENTRYPOINT ["node", "-r", "@hyperdx/node-opentelemetry/build/src/tracing", "./build/index.js"]