Run the dev container
The IBM Informix Developer Edition Docker image is the recommended dev / integration-test target. It’s the same image our CI runs against.
First-time setup
Section titled “First-time setup”docker run -d --name informix-dev \ -e LICENSE=accept \ -p 9088:9088 \ -p 9089:9089 \ --privileged \ icr.io/informix/informix-developer-database:15.0.1.0.3DE9088— clear-text SQLI listener9089— TLS-enabled SQLI listener (server-side cert is self-signed; usetls=Truein dev)--privileged— required for the dev image’s shared-memory tuning
The image takes ~90 seconds to initialize. Watch for oninit running:
docker logs -f informix-devDefault credentials
Section titled “Default credentials”| Field | Value |
|---|---|
user | informix |
password | in4mix |
database | sysmaster (always exists) |
server | informix |
For application use create your own database:
docker exec -it informix-dev bash -c ' echo "CREATE DATABASE app_db WITH LOG;" | dbaccess sysmaster'Setup for smart-LOB tests
Section titled “Setup for smart-LOB tests”Smart-LOBs (BLOB / CLOB) require additional one-time setup:
# Inside the containerdocker exec -it informix-dev su - informix -c ' onspaces -c -S sbspace1 -p $INFORMIXDIR/sbspace1 -o 0 -s 100000
# Edit $ONCONFIG to set SBSPACENAME sbspace1, then: onmode -ky oninit -y
# Take a level-0 archive so the sbspace is usable ontape -s -L 0'After that, BLOBs and CLOBs work end-to-end. See docs/DECISION_LOG.md §10 for the gory details.
Running the integration tests
Section titled “Running the integration tests”make ifx-up # starts the container if not already runningmake test-integration # runs the 231 integration testsOr directly:
pytest -m integrationTroubleshooting
Section titled “Troubleshooting”“Connection refused” on 9088: the image is still initializing. Wait for oninit running in the logs.
Login succeeds, queries fail with -329 (database does not exist): you’re connecting to a database that hasn’t been created yet. Use database="sysmaster" for ad-hoc testing — it always exists.
-908 (system error / shared memory): the container needs --privileged. Restart with that flag.