Skip to content

Dockerfile for a base Elasticsearch image to be extended by others (allow to install plug-ins, change configuration, etc.)

License

Notifications You must be signed in to change notification settings

hpfousac/docker-elasticsearch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fork Description

differences from original source

  • the oficial image is now used

dependency on build/run-time environemnt

The DOCKER_REGISTRY environment variable has to be set.


This project is no longer maintained

As of November 7th, 2018, I've decided to end my commitment to maintaining this repo and related.

It's been 3 years since I last used Elasticsearch, so I no longer have the motivation it takes to maintain and evolve this project. Also, other projects need all the attention I can give.

It was a great run, thank you all.

docker-elasticsearch

Ready to use, lean and highly configurable Elasticsearch container image.

Docker Repository on Quay.io

Current software

  • Alpine Linux 3.8
  • OpenJDK JRE 8u171
  • Elasticsearch 6.4.2

Note: x-pack-ml module is forcibly disabled as it's not supported on Alpine Linux.

Run

Attention

Ready to use node for cluster elasticsearch-default:

docker run --name elasticsearch \
	--detach \
	--privileged \
	--volume /path/to/data_folder:/data \
        quay.io/pires/docker-elasticsearch:6.4.2

Ready to use node for cluster myclustername:

docker run --name elasticsearch \
	--detach \
	--privileged \
	--volume /path/to/data_folder:/data \
	-e CLUSTER_NAME=myclustername \
        quay.io/pires/docker-elasticsearch:6.4.2

Ready to use node for cluster elasticsearch-default, with 8GB heap allocated to Elasticsearch:

docker run --name elasticsearch \
	--detach \
	--privileged \
	--volume /path/to/data_folder:/data \
	-e ES_JAVA_OPTS="-Xms8g -Xmx8g" \
        quay.io/pires/docker-elasticsearch:6.4.2

Ready to use node with plugins (x-pack and repository-gcs) pre installed. Already installed plugins are ignored:

docker run --name elasticsearch \
	--detach \
	--privileged \
	--volume /path/to/data_folder:/data \
	-e ES_JAVA_OPTS="-Xms8g -Xmx8g" \
	-e ES_PLUGINS_INSTALL="repository-gcs,x-pack" \
        quay.io/pires/docker-elasticsearch:6.4.2

Master-only node for cluster elasticsearch-default:

docker run --name elasticsearch \
	--detach \
	--privileged \
	--volume /path/to/data_folder:/data \
	-e NODE_DATA=false \
	-e HTTP_ENABLE=false \
        quay.io/pires/docker-elasticsearch:6.4.2

Data-only node for cluster elasticsearch-default:

docker run --name elasticsearch \
	--detach --volume /path/to/data_folder:/data \
	--privileged \
	-e NODE_MASTER=false \
	-e HTTP_ENABLE=false \
        quay.io/pires/docker-elasticsearch:6.4.2

Data-only node for cluster elasticsearch-default with shard allocation awareness:

docker run --name elasticsearch \
	--detach --volume /path/to/data_folder:/data \
        --volume /etc/hostname:/dockerhost \
	--privileged \
	-e NODE_MASTER=false \
	-e HTTP_ENABLE=false \
    -e SHARD_ALLOCATION_AWARENESS=dockerhostname \
    -e SHARD_ALLOCATION_AWARENESS_ATTR="/dockerhost" \
        quay.io/pires/docker-elasticsearch:6.4.2

Client-only node for cluster elasticsearch-default:

docker run --name elasticsearch \
	--detach \
	--privileged \
	--volume /path/to/data_folder:/data \
	-e NODE_MASTER=false \
	-e NODE_DATA=false \
        quay.io/pires/docker-elasticsearch:6.4.2

I also make available special images and instructions for AWS EC2 and Kubernetes.

Environment variables

This image can be configured by means of environment variables, that one can set on a Deployment.

Backup

Mount a shared folder (for example via NFS) to /backup and make sure the elasticsearch user has write access. Then, set the REPO_LOCATIONS environment variable to "/backup" and create a backup repository:

backup_repository.json:

{
  "type": "fs",
  "settings": {
    "location": "/backup",
    "compress": true
  }
}
curl -XPOST http://<container_ip>:9200/_snapshot/nas_repository -d @backup_repository.json`

Now, you can take snapshots using:

curl -f -XPUT "http://<container_ip>:9200/_snapshot/nas_repository/snapshot_`date --utc +%Y_%m_%dt%H_%M`?wait_for_completion=true"

About

Dockerfile for a base Elasticsearch image to be extended by others (allow to install plug-ins, change configuration, etc.)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 54.2%
  • Makefile 28.8%
  • Dockerfile 17.0%