Atproto AMA app
1# Stage 1: install dependencies
2FROM node:20-alpine AS deps
3RUN corepack enable && corepack prepare pnpm@10.17.1 --activate
4WORKDIR /app
5COPY package.json pnpm-lock.yaml ./
6RUN pnpm install --frozen-lockfile
7
8# Stage 2: build application
9FROM node:20-alpine AS build
10RUN corepack enable && corepack prepare pnpm@10.17.1 --activate
11WORKDIR /app
12COPY --from=deps /app/node_modules ./node_modules
13COPY . .
14RUN pnpm run build
15
16# Stage 3: production runtime
17FROM node:20-alpine AS runtime
18WORKDIR /app
19ENV NODE_ENV=production
20COPY --from=build /app/.output ./.output
21COPY --from=build /app/node_modules ./node_modules
22EXPOSE 3000
23CMD ["node", ".output/server/index.mjs"]