343447f67a
* 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.
87 lines
1.9 KiB
YAML
87 lines
1.9 KiB
YAML
version: '2.3'
|
|
|
|
services:
|
|
conductor-server:
|
|
environment:
|
|
- CONFIG_PROP=config-postgres-es7.properties
|
|
image: conductor:server
|
|
container_name: conductor-server
|
|
build:
|
|
context: ../
|
|
dockerfile: docker/server/Dockerfile
|
|
args:
|
|
YARN_OPTS: ${YARN_OPTS}
|
|
networks:
|
|
- internal
|
|
ports:
|
|
- 8000:8080
|
|
- 8127:5000
|
|
healthcheck:
|
|
test: [ "CMD", "curl","-I" ,"-XGET", "http://localhost:8080/health" ]
|
|
interval: 60s
|
|
timeout: 30s
|
|
retries: 12
|
|
links:
|
|
- conductor-postgres:postgresdb
|
|
- conductor-elasticsearch:es
|
|
depends_on:
|
|
conductor-postgres:
|
|
condition: service_healthy
|
|
conductor-elasticsearch:
|
|
condition: service_healthy
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "1k"
|
|
max-file: "3"
|
|
|
|
conductor-postgres:
|
|
image: postgres:16
|
|
environment:
|
|
- POSTGRES_USER=conductor
|
|
- POSTGRES_PASSWORD=conductor
|
|
volumes:
|
|
- pgdata-conductor:/var/lib/postgresql/data
|
|
networks:
|
|
- internal
|
|
healthcheck:
|
|
test: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/5432'
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 12
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "1k"
|
|
max-file: "3"
|
|
|
|
conductor-elasticsearch:
|
|
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.11
|
|
environment:
|
|
- "ES_JAVA_OPTS=-Xms512m -Xmx1024m"
|
|
- xpack.security.enabled=false
|
|
- discovery.type=single-node
|
|
volumes:
|
|
- esdata-conductor:/usr/share/elasticsearch/data
|
|
networks:
|
|
- internal
|
|
healthcheck:
|
|
test: curl http://localhost:9200/_cluster/health -o /dev/null
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 12
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "1k"
|
|
max-file: "3"
|
|
|
|
volumes:
|
|
pgdata-conductor:
|
|
driver: local
|
|
esdata-conductor:
|
|
driver: local
|
|
|
|
networks:
|
|
internal:
|