# Oracle Aidb Docker Setup

Bring up Oracle 26ai Free in Docker, create a project-scoped app user with USERS...

- Repository: https://github.com/oracle-devrel/oracle-ai-developer-hub (4464 stars)
- Category: DevOps
- License: see repository
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add oracle-devrel/oracle-ai-developer-hub --skill oracle-aidb-docker-setup -g -a claude-code -y`
Codex: `npx skills add oracle-devrel/oracle-ai-developer-hub --skill oracle-aidb-docker-setup -g -a codex -y`
Cursor: `npx skills add oracle-devrel/oracle-ai-developer-hub --skill oracle-aidb-docker-setup -g -a cursor -y`
Gemini CLI: `npx skills add oracle-devrel/oracle-ai-developer-hub --skill oracle-aidb-docker-setup -g -a gemini-cli -y`

## Description

Bring up Oracle 26ai Free in Docker, create a project-scoped app user with USERS tablespace + ONNX-friendly grants, and write a `.env` ready for the rest of the build-paths skills. Idempotent, safe to re-invoke. Use when any project needs a fresh local Oracle 26ai instance.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

You scaffold the Oracle 26ai Free container AND create the app user the rest of the build-paths skills will use. Nothing else. No Python app code beyond the user-creation script.

**Why an app user (not SYSTEM)?** `OracleVS` declares its metadata column as JSON. Oracle's JSON validation requires Automatic Segment Space Management (ASSM). The `SYSTEM` tablespace lacks ASSM, so connecting as `SYSTEM` and creating any OracleVS table fails with `ORA-43853: JSON type cannot be used in non-automatic segment space management tablespace "SYSTEM"`. The app user we create has `DEFAULT TABLESPACE USERS` (which has ASSM).

## Step 0, References

- `shared/references/oracle-26ai-free-docker.md`, image, healthcheck, password rules, app-user creation rationale.
- `shared/templates/docker-compose.oracle-free.yml`, the canonical compose file (parameterised, port + volume + project name come from .env).

## Pre-flight, host-shell gotchas (for the user)

- After installing Docker, you must open a fresh shell for `docker` group membership to take effect, or use `sudo docker ...` for the rest of this session.
- `conda activate <env>` does not work in non-interactive bash. Call binaries by absolute path (`~/miniconda3/envs/<env>/bin/python`).
- conda-forge `python=3.12` does not include `pip`, when creating an env, list `pip` explicitly: `conda create -n <env> -c conda-forge --override-channels python=3.12 pip -y`.
- **Parallel runs need separate ports for ALL services**, not just Oracle. The tier skills typically write Open WebUI on `:3000` and the FastAPI adapter on `:8000`, if you're running multiple build-paths projects at once, override these in the project's `.env` (`OPEN_WEBUI_PORT`, `ADAPTER_PORT`) and read them from `docker-compose.yml` + the adapter's `uvicorn.run(port=...)` call.

## Step 1, Detect existing setup

The rest: https://github.com/oracle-devrel/oracle-ai-developer-hub/blob/HEAD/build-paths/skills/oracle-aidb-docker-setup/SKILL.md
