我有一个带有弹性搜索图像的docker-compose.yml文件:
elasticsearch:
image: elasticsearch
ports:
- "9200:9200"
container_name: custom_elasticsearch_1
如果我想安装其他插件,如HQ界面或附件映射器,我必须使用以下命令进行手动安装:
$ docker exec custom_elasticsearch_1 plugin install royrusso/elasticsearch-HQ
$ docker exec custom_elasticsearch_1 plugin install mapper-attachments
有没有办法在运行docker-compose up
命令时自动安装它们?
答案 0 :(得分:8)
Here是Elastic的一篇博文,与此完全相同!您需要使用Dockerfile执行命令来扩展图像。你的Dockerfile看起来像这样:
$(window).scroll(function() {
var div_offset = $("#leftscr").offset().top;
var window_scroll = $(window).scrollTop();
if(window_scroll < div_offset) {
$("div#l2").css({
"left": window_scroll + "px"
}).text("left&right:"+window_scroll + "px");
}
});
答案 1 :(得分:2)
受@NickPridorozhko的回答启发,但使用elasticsearch ^ 7.0.0(使用docker stack / swarm)进行了更新和测试,例如带有analysis-icu的示例:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
user: elasticsearch
command: >
/bin/sh -c "./bin/elasticsearch-plugin list | grep -q analysis-icu
|| ./bin/elasticsearch-plugin install analysis-icu;
/usr/local/bin/docker-entrypoint.sh"
...
主要区别是针对^ 7.0.0的更新命令,以及使用docker入口点而不是./bin/elasticsearch(在堆栈的上下文中,您会得到与可生成进程的限制有关的错误)
答案 2 :(得分:1)
如果您使用的是<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Background" Value="Red"></Setter>
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="0" />
</Style>
<DataTemplate DataType="{x:Type model:Image}">
<Border Background="Blue" Padding="4,1">
<StackPanel Orientation="Horizontal">
<Image Source="{DynamicResource ImgIcon}"></Image>
<Label Content="Filename:"></Label>
<Label Content="{Binding Name}"></Label>
<Label Content="Size:"></Label>
<Label Content="{Binding Size}"></Label>
</StackPanel>
</Border>
</DataTemplate>
<DataTemplate DataType="{x:Type model:Text}">
<Border Background="Green" Padding="4,1">
<StackPanel Orientation="Horizontal">
<Image Source="{DynamicResource TextIcon}"></Image>
<Label Content="Filename:"></Label>
<Label Content="{Binding Name}"></Label>
<Label Content="Size:"></Label>
<Label Content="{Binding Size}"></Label>
</StackPanel>
</Border>
</DataTemplate>
中的ELK
堆栈
您需要像
一样设置sebp/elk
Dockerfile
在https://elk-docker.readthedocs.io/#installing-elasticsearch-plugins上看到。
它也应该仅适用于Elastic Search。
答案 3 :(得分:0)
这对我有用。先安装插件,然后继续启动elasticsearch。
elasticsearch:
image: elasticsearch
command:
- sh
- -c
- "plugin list | grep -q plugin_name || plugin install plugin_name;
/docker-entrypoint.sh elasticsearch"
答案 4 :(得分:0)
摄取附件插件需要其他权限,并在安装过程中提示用户。我使用了yes
命令:
elasticsearch:
image: elasticsearch:6.8.12
command: >
/bin/sh -c "./bin/elasticsearch-plugin list | grep -q ingest-attachment
|| yes | ./bin/elasticsearch-plugin install --silent ingest-attachment;
/usr/local/bin/docker-entrypoint.sh eswrapper"