Автоматическое редактирование файла в dockerized контейнере

У меня есть dockerized контейнер для работы elasticsearch и kibana, при этом он автоматически устанавливает некоторые плагины, как только я запускаю docker-контейнер.

Мне нужно отредактировать файл config/elasticsearch.yml, чтобы включить использование этого одного плагина, и я пытаюсь найти способ сделать это аналогично тому, как я установил плагины через файл, как показано ниже.

ARG ELASTIC_VERSION="$ELASTIC_VERSION"

FROM docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}

RUN bin/elasticsearch-plugin install https://github.com/spinscale/elasticsearch-ingest-opennlp/releases/download/7.6.0.1/ingest-opennlp-7.6.0.1.zip
RUN bin/elasticsearch-plugin install mapper-annotated-text
RUN bin/elasticsearch-plugin install analysis-phonetic
RUN bin/elasticsearch-plugin install ingest-attachment --batch
RUN bin/ingest-opennlp/download-models

2 ответа

Правильный способ - создать новый образ докера:

  1. Создайте новый Dockerfile с elasticsearch в качестве базового образа. Замените файл elasticsearch.yml на этом изображении. А теперь создайте этот образ
FROM elasticsearch
COPY elasticsearch.yml config/elasticsearch.yml
  1. При желании можно отправить этот образ в dockerhub
  2. Используйте этот образ для развертывания


ПРИНЯТО ТАКОЕ СПАСИБО ЗА ВСЮ ПОМОЩЬ, ПОЛУЧЕННУЮ ПО ВДОХНОВЕНИЮ /questions/7304473/kak-redaktirovat-asticsearchyml-v-kontejnere-docker/7304484#7304484

Обновлен файл elasticsearch; Сохраните это здесь для использования в будущем

ARG ELASTIC_VERSION="$ELASTIC_VERSION"

FROM docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}

RUN bin/elasticsearch-plugin install https://github.com/spinscale/elasticsearch-ingest-opennlp/releases/download/7.6.0.1/ingest-opennlp-7.6.0.1.zip
RUN bin/elasticsearch-plugin install mapper-annotated-text
RUN bin/elasticsearch-plugin install analysis-phonetic
RUN bin/elasticsearch-plugin install ingest-attachment --batch
RUN bin/ingest-opennlp/download-models


RUN echo "ingest.opennlp.model.file.persons: en-ner-persons.bin" >> /usr/share/elasticsearch/config/elasticsearch.yml
RUN echo "ingest.opennlp.model.file.dates: en-ner-dates.bin" >> /usr/share/elasticsearch/config/elasticsearch.yml
RUN echo "ingest.opennlp.model.file.locations: en-ner-locations.bin" >> /usr/share/elasticsearch/config/elasticsearch.yml
Другие вопросы по тегам