2026-10-25 16:35:47 +01:00
|
|
|
# Images
|
|
|
|
|
|
|
|
|
|
- `dashboard-ce/docker/Dockerfile` builds `openvidu/openvidu-dashboard` with `openvidu-dashboard/` as context
|
|
|
|
|
(`.dockerignore` at its root). These rules also apply to images built on these packages.
|
2026-10-26 20:17:27 +01:00
|
|
|
- Images run Aikido safe-chain for every package manager call and install with `--frozen-lockfile` and a `--filter`,
|
|
|
|
|
only in stages on `$BUILDPLATFORM` (`FROM --platform=$BUILDPLATFORM <image>`: on a `FROM` that names a stage the flag
|
|
|
|
|
is ignored): under emulation its check can outlast its 10 s timeout. A stage that must run per platform (the runtime,
|
|
|
|
|
or what needs the target's Node) installs nothing and only copies and runs what those stages built. The SPA is built
|
|
|
|
|
with `--base-href "$BASE_HREF"` (default `/`, deployments use `/dashboard/`). Images purge tzdata, run as uid 1000 and
|
|
|
|
|
declare a `HEALTHCHECK` through the entry's `healthcheck` argument, which uses `node:http` because `fetch` refuses
|
|
|
|
|
ports such as 6000.
|
2026-10-25 16:35:47 +01:00
|
|
|
- Runtime: `pnpm deploy --prod` of the backend on `node:<24.x.y>-trixie-slim`, without npm, npx and corepack.
|
|
|
|
|
- `smoke-test.sh <image> <budget-mb> [docker run options...]` (`./dashboard.sh smoke-image ce`, 300 MB) checks
|
|
|
|
|
`MONGO_ENABLED=false`, health, `GET /api/healthcheck`, `HEAD /`, uid 1000, `SERVER_PORT`, `docker stop` and the
|
|
|
|
|
uncompressed size budget; the options reach every container, e.g. what an image built on this one needs to start.
|