# syntax=docker/dockerfile:1.19.0
# This file is generated by Dofigen v2.8.0
# See https://github.com/lenra-io/dofigen

# install
FROM node@sha256:0e0ff40c39bc087845bfb27465a0df4ea419520094bc35842ff83dd8cbe6f9b6 AS install
LABEL \
    org.opencontainers.image.base.digest="sha256:0e0ff40c39bc087845bfb27465a0df4ea419520094bc35842ff83dd8cbe6f9b6" \
    org.opencontainers.image.base.name="docker.io/node:24-slim" \
    org.opencontainers.image.stage="install"
WORKDIR /app/
RUN \
    --mount=type=bind,target=pnpm-workspace.yaml,source=pnpm-workspace.yaml \
    --mount=type=bind,target=pnpm-lock.yaml,source=pnpm-lock.yaml \
    --mount=type=bind,target=package.json,source=package.json \
    --mount=type=bind,target=packages/db/package.json,source=packages/db/package.json \
    --mount=type=bind,target=packages/assertions/package.json,source=packages/assertions/package.json \
    --mount=type=bind,target=packages/locales/package.json,source=packages/locales/package.json \
    --mount=type=bind,target=packages/regions/package.json,source=packages/regions/package.json \
    --mount=type=bind,target=packages/theme-store/package.json,source=packages/theme-store/package.json \
    --mount=type=bind,target=packages/utils/package.json,source=packages/utils/package.json \
    --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
    <<EOF
corepack enable pnpm
pnpm install --prod --frozen-lockfile --filter=@openstatus/db... --loglevel debug
EOF

# runtime
FROM denoland/deno@sha256:fa335acdf6b72106eda2cb6a8cb5f4187e7630e357467489db4b2e7352d5e432 AS runtime
LABEL \
    io.dofigen.version="2.8.0" \
    org.opencontainers.image.authors="OpenStatus Team" \
    org.opencontainers.image.base.digest="sha256:fa335acdf6b72106eda2cb6a8cb5f4187e7630e357467489db4b2e7352d5e432" \
    org.opencontainers.image.base.name="docker.io/denoland/deno:2.9.7" \
    org.opencontainers.image.description="One-shot database migration runner for OpenStatus" \
    org.opencontainers.image.source="https://github.com/openstatusHQ/openstatus" \
    org.opencontainers.image.title="OpenStatus DB Migrate" \
    org.opencontainers.image.vendor="OpenStatus"
ENV DENO_DIR="/tmp/deno-dir"
WORKDIR /app/packages/db
COPY \
    --chown=1000:1000 \
    --link \
    "packages/db" "/app/packages/db"
COPY \
    --chown=1000:1000 \
    --link \
    "packages/assertions" "/app/packages/assertions"
COPY \
    --chown=1000:1000 \
    --link \
    "packages/locales" "/app/packages/locales"
COPY \
    --chown=1000:1000 \
    --link \
    "packages/regions" "/app/packages/regions"
COPY \
    --chown=1000:1000 \
    --link \
    "packages/theme-store" "/app/packages/theme-store"
COPY \
    --chown=1000:1000 \
    --link \
    "packages/utils" "/app/packages/utils"
COPY \
    --from=install \
    --chown=1000:1000 \
    --link \
    "/app/node_modules" "/app/node_modules"
COPY \
    --from=install \
    --chown=1000:1000 \
    --link \
    "/app/packages" "/app/packages"
USER 1000:1000
ENTRYPOINT ["deno", "task", "migrate"]
