我试图在我的OpenSearch上安装自定义REST插件.
我用的是ubuntu 20
这是我的docker-compose.yml文件
version: '3'
services:
opensearch-node1:
image: opensearchproject/opensearch:1.0.1
container_name: opensearch-node1
environment:
- cluster.name=opensearch-cluster
- node.name=opensearch-node1
- discovery.seed_hosts=opensearch-node1,opensearch-node2
- cluster.initial_master_nodes=opensearch-node1,opensearch-node2
- bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
hard: 65536
volumes:
- opensearch-data1:/usr/share/opensearch/data
ports:
- 9200:9200
- 9600:9600 # required for Performance Analyzer
networks:
- opensearch-net
opensearch-node2:
image: opensearchproject/opensearch:1.0.1
container_name: opensearch-node2
environment:
- cluster.name=opensearch-cluster
- node.name=opensearch-node2
- discovery.seed_hosts=opensearch-node1,opensearch-node2
- cluster.initial_master_nodes=opensearch-node1,opensearch-node2
- bootstrap.memory_lock=true
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- opensearch-data2:/usr/share/opensearch/data
networks:
- opensearch-net
opensearch-dashboards:
image: opensearchproject/opensearch-dashboards:1.0.1
container_name: opensearch-dashboards
ports:
- 5601:5601
expose:
- "5601"
environment:
OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]' # must be a string with no spaces when specified as an environment variable
networks:
- opensearch-net
volumes:
opensearch-data1:
opensearch-data2:
networks:
opensearch-net:但我不知道怎么继续下去..。
这是插件布局(我从这里克隆的)

发布于 2021-09-26 18:08:27
当然,没有插件,码头映像就可以运行了:/因此,您需要在安装插件的情况下创建一个停靠映像。
打开插件项目外部的一个新目录,其中包含您的打包插件。这个包叫做->my-plugin.zip,位于build/distributions/my-plugin.zip下的插件项目中。如果它不在那里,那么您应该像这样组装插件:./gradlew assemble -Dopensearch.version=1.0.0 -Dbuild.snapshot=false
将以下Dockerfile添加到新目录:
FROM opensearchproject/opensearch:1.0.0
ADD ./my-plugin.zip /usr/
RUN /usr/share/opensearch/bin/opensearch-plugin install file:///usr/my-plugin.zipADD将将本地包添加到容器中,以便下一个命令可以使用它。RUN之后的脚本将将插件安装到OpenSearch中。
构建码头映像,添加一个标记将使以后的生活更加轻松:
docker build --tag=opensearch-with-my-plugin .现在,您有一个开放搜索映像与您的插件安装在上面!
修复您最初发布的YAML文件,以便它使用正确的图像。这意味着将opensearchproject/opensearch:1.0.1替换为您生成的映像标记- opensearch-with-my-plugin。并将其添加到带有Dockerfile的目录中(在项目中不像您拥有的那样)。
我冒昧地将仪表板版本更改为1.0.0,因为我不确定它是否适用于图像的1.0.0。无论如何,这应该是一个坚实的开端!
version: '3'
services:
opensearch-node1:
image: opensearch-with-my-plugin
container_name: opensearch-node1
environment:
- cluster.name=opensearch-cluster
- node.name=opensearch-node1
- discovery.seed_hosts=opensearch-node1,opensearch-node2
- cluster.initial_master_nodes=opensearch-node1,opensearch-node2
- bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
hard: 65536
volumes:
- opensearch-data1:/usr/share/opensearch/data
ports:
- 9200:9200
- 9600:9600 # required for Performance Analyzer
networks:
- opensearch-net
opensearch-node2:
image: opensearch-with-my-plugin
container_name: opensearch-node2
environment:
- cluster.name=opensearch-cluster
- node.name=opensearch-node2
- discovery.seed_hosts=opensearch-node1,opensearch-node2
- cluster.initial_master_nodes=opensearch-node1,opensearch-node2
- bootstrap.memory_lock=true
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- opensearch-data2:/usr/share/opensearch/data
networks:
- opensearch-net
opensearch-dashboards:
image: opensearchproject/opensearch-dashboards:1.0.0
container_name: opensearch-dashboards
ports:
- 5601:5601
expose:
- "5601"
environment:
OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]' # must be a string with no spaces when specified as an environment variable
networks:
- opensearch-net
volumes:
opensearch-data1:
opensearch-data2:
networks:
opensearch-net:通过在终端中运行此命令进行验证,并确保您的插件已安装:)
curl -XGET https://localhost:9200/_cat/plugins -u 'admin:admin' --insecure此外,我还创建了一个包含更多信息的插件的GitHub模板。您克隆的回购是我在编写插件时为我的博客帖子创建的,所以它是一个REST插件,但不是最普通的插件。
如果您在运行过程中仍然有问题,请在评论中告诉我,我很乐意提供帮助。
编辑:文件位置编辑了一点。
https://stackoverflow.com/questions/69333800
复制相似问题