diff --git a/docker-compose.base.yml b/docker-compose.base.yml
index dc046c4f41d32d3737bd2dac0f16ab71240e3b7f..7c5f901f07aa744836366c319adda2dc0bb2ae40 100644
--- a/docker-compose.base.yml
+++ b/docker-compose.base.yml
@@ -10,7 +10,7 @@ services:
       - discovery.seed_hosts=os-node-1,os-node-2
       - cluster.initial_master_nodes=os-node-1,os-node-2
       - bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
-      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
+      - "OPENSEARCH_JAVA_OPTS=-Xms${OPENSEARCH_HEAPSIZE:-512}m -Xmx${OPENSEARCH_HEAPSIZE:-512}m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
       - OPENSEARCH_ADMIN_PASSWORD
       - OPENSEARCH_KIBANASERVER_PASSWORD
       - OPENSEARCH_LOGGINGUSER_PASSWORD
diff --git a/example.env b/example.env
index 048c92985a658b6b831f5146c66446f533ad61f1..bea7c134497b324bb593992a22df42a01463ff63 100644
--- a/example.env
+++ b/example.env
@@ -4,6 +4,7 @@ OPENSEARCH_PORT=8200
 OPENSEARCH_ADMIN_PASSWORD=admin
 OPENSEARCH_KIBANASERVER_PASSWORD=kibanaserverpassword
 OPENSEARCH_LOGGINGUSER_PASSWORD=password
+OPENSEARCH_HEAPSIZE=512
 
 
 # OpenSearch Dashboards configuration