What do these settings do to make Elasticsearch to run in development mode?
docker, elasticsearch, elasticsearch-5
Solution
It is described here: https://www.elastic.co/guide/en/elasticsearch/reference/master/system-config.html
Development mode vs production mode By default, Elasticsearch assumes that you are working in development mode. If any of the above settings are not configured correctly, a warning will be written to the log file, but you will be able to start and run your Elasticsearch node.
As soon as you configure a network setting like `network.host`, Elasticsearch assumes that you are moving to production and will upgrade the above warnings to exceptions. These exceptions will prevent your Elasticsearch node from starting. This is an important safety measure to ensure that you will not lose data because of a malconfigured server.
The default install does not allow Cluster networking (with the transport bound to localhost):
By default, Elasticsearch binds to localhost for HTTP and transport (internal) communication. This is fine for downloading and playing with Elasticsearch, and everyday development but it’s useless for production systems. To form a cluster, Elasticsearch instances must be reachable via transport communication so they must bind transport to an external interface. Thus, we consider an Elasticsearch instance to be in development mode if it does not bind transport to an external interface (the default), and is otherwise in production mode if it does bind transport to an external interface. Note that HTTP can be configured independently of transport
Problem
I've been using Elasticsearch in a Docker container for testing purposes. Instead of mocking responses through other meanings, I find much easier, more maintainable and reliable to import a small data set from my production server and use that as test data. I've recently bumped into an issue where I didn't had access to the host system's configuration settings to bump up vm.max_map_count to 262144. ES would not start. So, after struggling a bit to find an alternative, I realised I could set up ES to run on development mode by setting the following: http.host=0.0.0.0 transport.host=127.0.0.1 I have an idea of what those params refer to by reading the documentation. But still not clear why it makes ES to run on development mode. And what would be the limitations. Would anyone know why? Thanks in advance. refs: - https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html - https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html