Oracle 26ai Container
Overview
Use this skill to choose the right Oracle 26ai image and run repeatable Podman workflows for dev/test environments.
Choose Image Flavor
- Use Full image (
container-registry.oracle.com/database/free:latest) when advanced features are required. - Use Lite image (
container-registry.oracle.com/database/free:latest-lite) when faster pull/start and smaller footprint are preferred (for example CI smoke tests). - Expect Lite to exclude a set of advanced features; do not assume feature parity with Full.
Start Containers
# Full image
podman run -d --name oracle26 container-registry.oracle.com/database/free:latest
# Lite image
podman run -d --name oracle26lite container-registry.oracle.com/database/free:latest-lite
- Wait for
podman psto report statushealthybefore connecting clients. - Expect random SYS/SYSTEM/PDBADMIN passwords when no password input is provided.
- For reproducible CI, pin explicit image tags or digests instead of relying only on mutable
latesttags.
Configure Passwords
- Prefer
--secretinputs on Podman for sensitive credentials. - Use
-e ORACLE_PWD=<password>only for local, low-risk workflows. - Rotate account passwords after startup when needed:
podman exec <container_name> ./setPassword.sh <new_password>
Configure Persistence
- Mount data at
/opt/oracle/oradatato persist DB state across container recreation. - Prefer named Podman volumes for fast startup from prebuilt datafiles.
- Expect first-time initialization to take significantly longer when mounting an empty host directory.
- Ensure mounted host paths are writable by container uid
54321(oracleuser in container).
Connect and Verify
- Publish listener port
1521with-p <host_port>:1521or-P. - Use service
FREEfor CDB root andFREEPDB1for default PDB. - Connect from inside container:
podman exec -it <container_name> sqlplus system/<password>@FREE
podman exec -it <container_name> sqlplus pdbadmin/<password>@FREEPDB1
Run Post-Setup and Startup Scripts
- Mount setup scripts to
/opt/oracle/scripts/setup. - Mount startup scripts to
/opt/oracle/scripts/startup. - Use
.sqlor.shfiles and prefix with numeric ordering (01_,02_, ...). - Expect setup scripts to run only during fresh database creation; prebuilt DB startup alone does not re-run setup scripts.
Handle Full vs Lite Differences
ORACLE_PWDis available across Full and Lite images.- Use Full-specific env toggles (
ORACLE_CHARACTERSET,ENABLE_ARCHIVELOG,ENABLE_FORCE_LOGGING) only when Full image behavior is required. - Use Lite-specific options (for example
ORACLE_PDB) only when running Lite image workflows. - Avoid Lite for scenarios that need Oracle True Cache or other excluded advanced components.
Use Recommended Defaults
- Use Lite + ephemeral storage for CI validation and adapter smoke tests.
- Use Full + persisted volume + explicit port mapping for feature validation and deeper local debugging.
- Gate tests that depend on advanced Oracle features so Lite-based CI jobs skip them explicitly.
Official References
- https://container-registry.oracle.com/ords/ocr/ba/database/free
- https://www.oracle.com/database/free/
- https://www.oracle.com/database/free/get-started/
- https://docs.oracle.com/en/database/oracle/property-graph/25.3/spgdg/quick-start-graph-server-26ai-lite-container.html
- https://docs.podman.io/en/latest/markdown/podman-run.1.html
- https://docs.podman.io/en/latest/markdown/podman-secret-create.1.html
Shared Styleguide Baseline
- Use shared styleguides for generic language/framework rules to reduce duplication in this skill.
- General Principles
- Oracle SQL*Plus
- Bash
- Keep this skill focused on tool-specific workflows, edge cases, and integration details.
微信扫一扫