xpack oss elastic compose elasticsearch docker

elasticsearch - oss - ¿Cómo extender una imagen de ventana acoplable existente?



elasticsearch docker-compose (3)

Estoy usando la imagen oficial de Elasearch Docker en lugar de configurar mi propia instancia de búsqueda elástica. Y eso funciona muy bien, hasta el punto en que quería extenderlo. Quería instalar Marvel en esa instancia de ElasticSearch para obtener más información.

Ahora dockerfile / elasticsearch ejecuta automáticamente ElasticSearch y configurar el comando en /bin/bash no funciona, ni se conecta al contenedor ni intenta acceder a él a través de SSH, ni instala ssh-daemon con apt-get install -y openssh-server .

En este caso particular, podría ingresar al sistema de archivos del contenedor y ejecutar opt/elasticsearch/bint/plugin -i elasticsearch/marvel/latest y todo funcionó.

Pero, ¿cómo podría instalar un servicio adicional que necesita instalarse con apt-get cuando no puedo tener un terminal dentro del contenedor en funcionamiento?


Si no te importa usar Docker-Componer , lo que suelo hacer es agregar una primera sección para la imagen base que planeas reutilizar, y luego usar esa imagen como base en el resto de los archivos Docker de los servicios, algo a lo largo del líneas de:

--- version: ''2'' services: base: build: ./images/base collector: build: ./images/collector

Luego, en images / collector / Dockerfile, y dado que mi proyecto se llama webtrack , escribiría

FROM webtrack_base ...

¡Y ahora está hecho!


Simplemente extiéndalo usando un Dockerfile que comience con

FROM dockerfile/elasticsearch

e instala Marvel o ssh-server o lo que sea que necesites. Luego, termine con el comando correcto para comenzar sus servicios. Puede usar el supervisor para iniciar servicios múltiples, consulte Ejecutar un servicio automáticamente en un contenedor acoplable para obtener más información al respecto.


Actualización de agosto de 2016

Habiendo encontrado muy poca información actual sobre cómo hacer esto con las últimas versiones de ElasticSearch (2.3.5 por ejemplo), Kibana (4.5.3) y los complementos de Marvel & Sense, opté por tomar el camino más pronunciado y escribir mi propia imagen.

Encuentre el código fuente (Dockerfile) y README here

FROM java:jre-alpine MAINTAINER arcseldon <[email protected]> ENV ES_VERSION=2.3.5 / KIBANA_VERSION=4.5.3 RUN apk add --quiet --no-progress --no-cache nodejs / && adduser -D elasticsearch USER elasticsearch WORKDIR /home/elasticsearch RUN wget -q -O - http://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/${ES_VERSION}/elasticsearch-${ES_VERSION}.tar.gz / | tar -zx / && mv elasticsearch-${ES_VERSION} elasticsearch / && wget -q -O - http://download.elastic.co/kibana/kibana/kibana-${KIBANA_VERSION}-linux-x64.tar.gz / | tar -zx / && mv kibana-${KIBANA_VERSION}-linux-x64 kibana / && rm -f kibana/node/bin/node kibana/node/bin/npm / && ln -s $(which node) kibana/node/bin/node / && ln -s $(which npm) kibana/node/bin/npm / && ./elasticsearch/bin/plugin install license / && ./elasticsearch/bin/plugin install marvel-agent / && ./kibana/bin/kibana plugin --install elasticsearch/marvel/latest / && ./kibana/bin/kibana plugin --install elastic/sense CMD elasticsearch/bin/elasticsearch --es.logger.level=OFF --network.host=0.0.0.0 & kibana/bin/kibana -Q EXPOSE 9200 5601

Si solo desea la imagen preconstruida, haga lo siguiente:

docker pull arcseldon/elasticsearch-kibana-marvel-sense

Puede visitar el repositorio en hub.docker.com here

Uso:

docker run -d -p 9200:9200 -p 5601:5601 arcseldon/elasticsearch-kibana-marvel-sense

Puede conectarse a Elasticsearch con http: // localhost: 9200 y su front-end Kibana con http: // localhost: 5601 .

Puede conectarse a Marvel con http://localhost:5601/app/marvel y Sense con http://localhost:5601/app/sense

Espero que esto ayude a otros y ahorre tiempo.