18 lines
570 B
Text
18 lines
570 B
Text
# syntax=docker/dockerfile:1
|
|
# Migrator image — runs `payload migrate` / `payload migrate:create`
|
|
# Requires node:22 for pnpm 11 (node:sqlite).
|
|
# tsx 4.x ESM loader must be preloaded via NODE_OPTIONS so bare
|
|
# specifiers (.ts extensions) resolve before any module is imported.
|
|
|
|
FROM node:22-alpine AS base
|
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
WORKDIR /app
|
|
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
COPY . .
|
|
|
|
ENV NODE_OPTIONS="--import tsx/esm"
|
|
ENTRYPOINT ["pnpm", "payload"]
|
|
CMD ["migrate"]
|