PDS Admin tool make it easier to moderate your PDS with labels
1FROM node:24-slim AS builder
2ENV PNPM_HOME="/pnpm"
3ENV PATH="$PNPM_HOME:$PATH"
4RUN corepack enable
5WORKDIR /app
6
7COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
8# RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
9RUN pnpm install --frozen-lockfile
10
11COPY tsconfig.json ./
12COPY src ./src
13RUN pnpm exec tsc
14
15FROM node:24-alpine3.22 AS runtime
16ENV PNPM_HOME="/pnpm"
17ENV PATH="$PNPM_HOME:$PATH"
18RUN corepack enable
19WORKDIR /app
20
21COPY --from=builder /app/dist /app/dist
22COPY ./drizzle /app/drizzle
23# A very bad hack. need to see how to get a toml file to the volume of railway without this
24# COPY settings.toml /app/settings.toml
25COPY --from=builder /app/package.json /app/pnpm-lock.yaml /app/pnpm-workspace.yaml ./
26# RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
27RUN pnpm install --prod --frozen-lockfile
28
29# ENV DATABASE_URL="file:/app/data/label-watcher.db"
30ENV MIGRATIONS_FOLDER="drizzle"
31
32CMD ["node", "dist/index.js"]