Add Docker image facts and Phase 1 scaffold decisions documentation
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
---
|
||||
name: Directus Docker image facts
|
||||
description: Key facts about directus/directus:11.17.4 needed when extending or wrapping the image
|
||||
type: reference
|
||||
---
|
||||
|
||||
# Directus Docker image facts
|
||||
|
||||
- **Pinned tag**: `directus/directus:11.17.4` — confirmed to exist on Docker Hub (pushed 2026-04-30).
|
||||
- **Base image**: `node:22-alpine` (Alpine Linux). Use `apk add` for additional packages.
|
||||
- **Non-root user**: The upstream image runs as user `node`. Our Dockerfile switches to `USER root` for apk/chmod, then drops back with `USER node`.
|
||||
- **Working directory**: `/directus`
|
||||
- **Upstream CMD** (not ENTRYPOINT): `node cli.js bootstrap && pm2-runtime start ecosystem.config.cjs`
|
||||
- `node cli.js bootstrap` — idempotent DB init + admin user creation from ADMIN_EMAIL/ADMIN_PASSWORD. Safe to run every container start.
|
||||
- `pm2-runtime start ecosystem.config.cjs` — starts Directus under PM2; handles crash recovery and signal forwarding.
|
||||
- **Port**: 8055
|
||||
- **psql client package** on Alpine: `postgresql16-client` (version-specific; no generic `postgresql-client` on Alpine 3.20).
|
||||
- **Entrypoint override**: Our `entrypoint.sh` must call `node /directus/cli.js bootstrap` then `exec pm2-runtime start /directus/ecosystem.config.cjs` to replicate upstream behavior. Do NOT just call `node /directus/cli.js start` — that skips pm2.
|
||||
Reference in New Issue
Block a user