langfuse
1FROM node:20-alpine AS base
2
3WORKDIR /app
4
5# Install dependencies based on the preferred package manager
6COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
7RUN \
8if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
9elif [ -f package-lock.json ]; then npm ci; \
10elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i --frozen-lockfile; \
11else echo "Lockfile not found." && exit 1; \
12fi
13
14
15FROM base AS builder
16
17# Copying the entire context to /app including package.json
18COPY . /app
19
20ENV NODE_ENV production
21
22RUN npm run build
23
24FROM base AS runner
25
26ENV NODE_ENV production
27
28# Copy the built application from the builder stage
29COPY --from=builder /app/dist ./dist
30
31EXPOSE 3030
32
33ENV ADDRESS=0.0.0.0 PORT=3030
34
35CMD ["npm", "start"]