aboutsummaryrefslogtreecommitdiffstats
path: root/opensearch/docker-compose.yml
diff options
context:
space:
mode:
Diffstat (limited to 'opensearch/docker-compose.yml')
-rw-r--r--opensearch/docker-compose.yml81
1 files changed, 81 insertions, 0 deletions
diff --git a/opensearch/docker-compose.yml b/opensearch/docker-compose.yml
new file mode 100644
index 0000000..f291e3c
--- /dev/null
+++ b/opensearch/docker-compose.yml
@@ -0,0 +1,81 @@
+version: "3.9"
+services:
+ opensearch-node1: # This is also the hostname of the container within the Docker network (i.e. https://opensearch-node1/)
+ image: opensearchproject/opensearch:2.12.0
+ container_name: opensearch-node1
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "250m"
+ environment:
+ # - cluster.name=opensearch-cluster # Name the cluster
+ # - node.name=opensearch-node1 # Name the node that will run in this container
+ # - discovery.seed_hosts=opensearch-node1,opensearch-node2 # Nodes to look for when discovering the cluster
+ # - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 # Nodes eligibile to serve as cluster manager
+ # - bootstrap.memory_lock=true # Disable JVM heap memory swapping
+ - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Set min and max JVM heap sizes to at least 50% of system RAM
+ - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD} # Sets the demo admin user password when using demo configuration (for OpenSearch 2.12 and later)
+ - discovery.type=single-node
+ ulimits:
+ nofile: 65536
+ volumes:
+ - opensearch-data1:/usr/share/opensearch/data # Creates volume called opensearch-data1 and mounts it to the container
+ ports:
+ - 127.0.0.1:9200:9200 # REST API
+ - 172.17.0.1:9200:9200 # REST API
+ - 127.0.0.1:9600:9600 # Performance Analyzer
+ - 172.17.0.1:9600:9600 # Performance Analyzer
+ networks:
+ - opensearch-net # All of the containers will join the same Docker bridge network
+ # opensearch-node2:
+ # image: opensearchproject/opensearch:2.12.0 # This should be the same image used for opensearch-node1 to avoid issues
+ # container_name: opensearch-node2
+ # deploy:
+ # resources:
+ # limits:
+ # memory: 4096M
+ # logging:
+ # driver: "json-file"
+ # options:
+ # max-size: "250m"
+ # environment:
+ # - cluster.name=opensearch-cluster
+ # - node.name=opensearch-node2
+ # - discovery.seed_hosts=opensearch-node1,opensearch-node2
+ # - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2
+ # - bootstrap.memory_lock=true
+ # - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
+ # - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD}
+ # ulimits:
+ # nofile: 65536
+ # volumes:
+ # - opensearch-data2:/usr/share/opensearch/data
+ # networks:
+ # - opensearch-net
+ opensearch-dashboards:
+ image: opensearchproject/opensearch-dashboards:2.12.0 # Make sure the version of opensearch-dashboards matches the version of opensearch installed on other nodes
+ container_name: opensearch-dashboards
+ deploy:
+ resources:
+ limits:
+ memory: 2048M
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "250m"
+ ports:
+ - 127.0.0.1:5601:5601 # Map host port 5601 to container port 5601
+ - 172.17.0.1:5601:5601 # Map host port 5601 to container port 5601
+ expose:
+ - "5601" # Expose port 5601 for web access to OpenSearch Dashboards
+ environment:
+ OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]' # Define the OpenSearch nodes that OpenSearch Dashboards will query
+ env_file:
+ - .env
+ networks:
+ - opensearch-net
+volumes:
+ opensearch-data1:
+ opensearch-data2:
+networks:
+ opensearch-net: