Автоматическое редактирование файла в 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 ответа
Правильный способ - создать новый образ докера:
- Создайте новый Dockerfile с elasticsearch в качестве базового образа. Замените файл elasticsearch.yml на этом изображении. А теперь создайте этот образ
FROM elasticsearch
COPY elasticsearch.yml config/elasticsearch.yml
- При желании можно отправить этот образ в dockerhub
- Используйте этот образ для развертывания
ПРИНЯТО ТАКОЕ СПАСИБО ЗА ВСЮ ПОМОЩЬ, ПОЛУЧЕННУЮ ПО ВДОХНОВЕНИЮ /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