Files
Naomi Most 343447f67a fix: OpenSearch OOM kills, postgres:latest pin, and startup.sh flag ordering (#1043)
* fix: docker image now starts with SQLite by default when CONFIG_PROP is unset

Previously, startup.sh always passed -DCONDUCTOR_CONFIG_FILE pointing at
the bundled config.properties, which ships with conductor.db.type commented
out. This suppressed the JAR's built-in SQLite default, causing persistence
to fail on a bare `docker run -p 8080:8080 conductoross/conductor:latest`.

Now: if CONFIG_PROP is unset, the JAR is launched without -DCONDUCTOR_CONFIG_FILE
and uses its built-in defaults (SQLite, no external dependencies). If CONFIG_PROP
is set, the named config under /app/config/ is passed exactly as before — all
docker-compose setups are unaffected.

Fixes #1041. Prerequisite for deprecating conductoross/conductor-standalone
(conductor-oss/getting-started#7, sunset 2026-07-24).

* fix: pin postgres:16 and add OpenSearch heap limits in docker-compose files

Three compose files set OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m (redis-os,
redis-os2, redis-os3) to match the existing ES_JAVA_OPTS limits on ES7/ES8;
without it OpenSearch auto-allocates heap and gets OOM-killed on constrained
hosts.

docker-compose-postgres-es7.yaml pins postgres to :16 (was untagged :latest,
now resolved to PG18) which caused data-directory version conflicts when run
after any other postgres compose setup.

All 9 docker-compose configurations tested healthy end-to-end after these fixes.

* fix: restore file-storage bind mount and fix -DCONDUCTOR_CONFIG_FILE placement in startup.sh

- startup.sh: move -DCONDUCTOR_CONFIG_FILE before -jar so it is treated
  as a JVM system property (not a program argument). The previous version
  silently dropped the config file when CONFIG_PROP was set, preventing
  conductor.file-storage.enabled=true from taking effect and causing
  FileResource controller to not register (/api/files → 404).
- docker-compose-es8.yaml: restore the /tmp/conductor-file-storage-e2e
  bind mount that was lost in the merge from main.
- run_tests-es8.sh: restore STORAGE_DIR setup (mkdir) that was also lost
  in the merge from main.

These were regressions introduced during the Merge branch main into
fix/docker-startup-sqlite-default commit (3e94bf7bd).

* test: fix flaky PostgresQueueListenerTest by awaiting notification delivery

pg_notify delivery requires a JDBC round-trip; a bare assertTrue immediately
after sendNotification races the socket flush. Use await() with a 500 ms
timeout, consistent with the other notification tests in this file.
2026-05-04 16:46:35 -07:00
..