# Jetty slim — local / server runtime # Run as host USERID:GROUPID so mounted data/elastic stay owned by that user. # Optional overlays (scripts): # compose.network.yml — fixed IP on external network when NETWORK_NAME is set # compose.ports.yml — host port publish when HTTP_PORT is set (laptop only) services: thoughtframe: image: ${IMAGE:-thoughtframe-runtime}:${TAG:-dev} container_name: ${CONTAINER_NAME:-thoughtframe} restart: unless-stopped logging: driver: json-file options: max-size: "100m" max-file: "2" user: "${USERID:?set USERID}:${GROUPID:?set GROUPID}" environment: TZ: ${TZ:-America/Halifax} JAVA_OPTS: ${JAVA_OPTS:--Xms512m -Xmx2g} USERID: ${USERID} GROUPID: ${GROUPID} BOOTSTRAP_WAR_URL: ${BOOTSTRAP_WAR_URL:-} # Defaults stay container-local. Fusion may bind HTTP to 0.0.0.0:9200 on its # 172.25 Docker network without adding a host port mapping. OPENSEARCH_HTTP_HOST: ${OPENSEARCH_HTTP_HOST:-127.0.0.1} OPENSEARCH_HTTP_PORT: ${OPENSEARCH_HTTP_PORT:-0} volumes: - ${WEBAPP_HOST:-../runtime/webapp}:/opt/jetty-base/webapps/ROOT - ${DATA_HOST:-../runtime/data}:/opt/jetty-base/webapps/ROOT/WEB-INF/data - ${ELASTIC_HOST:-../runtime/elastic}:/opt/jetty-base/webapps/ROOT/WEB-INF/elastic # Bulk storage disk, reached from oemounts.xml externalpath (Edge uses the same /data). - ${DATADISK_HOST:-../runtime/datadisk}:/data