effective: | ignore: - node_modules builders: install: fromImage: path: node digest: sha256:6f7b03f7c2c8e2e784dcf9295400527b9b1270fd37b7e9a7285cf83b6951452d label: org.opencontainers.image.base.name: docker.io/node:24-slim org.opencontainers.image.base.digest: sha256:6f7b03f7c2c8e2e784dcf9295400527b9b1270fd37b7e9a7285cf83b6951452d org.opencontainers.image.stage: install workdir: /app/ run: - corepack enable pnpm - pnpm install --prod --frozen-lockfile --filter=@openstatus/db... --verbose cache: - target: /root/.local/share/pnpm/store bind: - target: pnpm-workspace.yaml source: pnpm-workspace.yaml - target: pnpm-lock.yaml source: pnpm-lock.yaml - target: package.json source: package.json - target: packages/db/package.json source: packages/db/package.json - target: packages/assertions/package.json source: packages/assertions/package.json - target: packages/locales/package.json source: packages/locales/package.json - target: packages/regions/package.json source: packages/regions/package.json - target: packages/theme-store/package.json source: packages/theme-store/package.json - target: packages/utils/package.json source: packages/utils/package.json fromImage: path: denoland/deno digest: sha256:69a9f3033e3f381770452648b1cbf4ae96ea409f7ef24f30afeff3d380705f62 label: org.opencontainers.image.vendor: OpenStatus org.opencontainers.image.source: https://github.com/openstatusHQ/openstatus org.opencontainers.image.description: One-shot database migration runner for OpenStatus org.opencontainers.image.title: OpenStatus DB Migrate io.dofigen.version: 2.8.0 org.opencontainers.image.base.digest: sha256:69a9f3033e3f381770452648b1cbf4ae96ea409f7ef24f30afeff3d380705f62 org.opencontainers.image.authors: OpenStatus Team org.opencontainers.image.base.name: docker.io/denoland/deno:2.9.2 workdir: /app/packages/db env: DENO_DIR: /tmp/deno-dir copy: - paths: - packages/db target: /app/packages/db - paths: - packages/assertions target: /app/packages/assertions - paths: - packages/locales target: /app/packages/locales - paths: - packages/regions target: /app/packages/regions - paths: - packages/theme-store target: /app/packages/theme-store - paths: - packages/utils target: /app/packages/utils - fromBuilder: install paths: - /app/node_modules target: /app/node_modules - fromBuilder: install paths: - /app/packages target: /app/packages entrypoint: - deno - task - migrate images: docker.io: denoland: deno: 2.9.2: digest: sha256:69a9f3033e3f381770452648b1cbf4ae96ea409f7ef24f30afeff3d380705f62 library: node: 24-slim: digest: sha256:6f7b03f7c2c8e2e784dcf9295400527b9b1270fd37b7e9a7285cf83b6951452d resources: dofigen.yml: hash: 3347644fa382f2f6faa53be252b2bfa2f0b65aaee345bc391b93fd11f57f7af8 content: | ignore: - node_modules builders: install: fromImage: node:24-slim workdir: /app/ labels: org.opencontainers.image.stage: install bind: - pnpm-workspace.yaml - pnpm-lock.yaml - package.json - packages/db/package.json - packages/assertions/package.json - packages/locales/package.json - packages/regions/package.json - packages/theme-store/package.json - packages/utils/package.json run: - corepack enable pnpm - pnpm install --prod --frozen-lockfile --filter=@openstatus/db... --verbose cache: - /root/.local/share/pnpm/store # One-shot migration runner: drizzle's migrator reads drizzle/ from disk at # runtime, so the image ships source + node_modules instead of a compiled binary. fromImage: denoland/deno:2.9.2 workdir: /app/packages/db labels: org.opencontainers.image.title: OpenStatus DB Migrate org.opencontainers.image.description: One-shot database migration runner for OpenStatus org.opencontainers.image.source: https://github.com/openstatusHQ/openstatus org.opencontainers.image.vendor: OpenStatus org.opencontainers.image.authors: OpenStatus Team # Workspace package sources ship too (not just their node_modules) so pnpm's # @openstatus/* symlinks resolve and seed.mts can run via the same image. copy: - packages/db /app/packages/db - packages/assertions /app/packages/assertions - packages/locales /app/packages/locales - packages/regions /app/packages/regions - packages/theme-store /app/packages/theme-store - packages/utils /app/packages/utils - fromBuilder: install source: /app/node_modules target: /app/node_modules - fromBuilder: install source: /app/packages target: /app/packages # /deno-dir (image default) is root-owned; the runtime user needs a writable # cache dir for the .mts transpile emit. env: DENO_DIR: /tmp/deno-dir # deno task keeps package.json's migrate script the single source of truth. entrypoint: - deno - task - migrate