open-notebook/scripts/release-test/docker-compose.release-test.yml
Luis Novo 2181b14a79
chore(release): rc-stack pulls the pushed image + optional --with-runtimes (#1133)
Retro improvements from the v1.13.0 release:
- rc-stack.sh 'up' now docker-pulls lfnovo/open_notebook:<tag> by default so a
  same-named local build can't shadow the registry artifact during Phase 6
  verification (non-fatal for local-only tags).
- New --with-runtimes flag enables the opt-in heavy engines (Docling +
  Crawl4AI) on the RC stack via RC_ENABLE_DOCLING/RC_ENABLE_CRAWL4AI, so the
  published image's opt-in install path can be exercised with real data. The
  release-test compose defaults these empty, keeping fresh/upgrade tests fast.
- Documented both gotchas (local-tag shadowing; judging opt-in gating on a
  clean image vs a dev venv with runtimes installed out-of-band) in
  RELEASE_PROCESS.md.
2026-07-14 07:29:00 -03:00

48 lines
1.9 KiB
YAML

services:
surrealdb:
image: surrealdb/surrealdb:v2
command: start --log info --user root --pass root rocksdb:/mydata/test.db
user: root
volumes:
- ${DATA_DIR:?set DATA_DIR}/surreal:/mydata
app:
image: ${APP_IMAGE:?set APP_IMAGE}
ports:
- "127.0.0.1:${API_PORT:?set API_PORT}:5055"
- "127.0.0.1:${FE_PORT:?set FE_PORT}:8502"
environment:
# Without an explicit API_URL the frontend's /config points the BROWSER
# at host:5055 — on a dev machine that is the development API, not this
# stack (silent data crossover between environments!)
- API_URL=${RC_API_URL:-}
- OPEN_NOTEBOOK_ENCRYPTION_KEY=${RC_ENCRYPTION_KEY:-release-test-key}
- SURREAL_URL=ws://surrealdb:8000/rpc
- SURREAL_USER=root
- SURREAL_PASSWORD=root
- SURREAL_NAMESPACE=${RC_SURREAL_NS:-open_notebook}
- SURREAL_DATABASE=${RC_SURREAL_DB:-open_notebook}
# Opt-in heavy runtimes: empty by default (fresh/upgrade tests stay fast);
# rc-stack.sh --with-runtimes sets these to install Docling/Crawl4AI so the
# published image's opt-in path can be exercised with real data.
- OPEN_NOTEBOOK_ENABLE_DOCLING=${RC_ENABLE_DOCLING:-}
- OPEN_NOTEBOOK_ENABLE_CRAWL4AI=${RC_ENABLE_CRAWL4AI:-}
volumes:
- ${DATA_DIR}/notebook:/app/data
# Reach host services (e.g. Ollama on localhost:11434) via
# host.docker.internal on Linux too; Docker Desktop resolves it natively.
# Credentials pointing at local services must use
# http://host.docker.internal:<port> when the app runs in a container.
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
- surrealdb
proxy:
image: nginx:alpine
ports:
- "127.0.0.1:${PROXY_PORT:?set PROXY_PORT}:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- app