首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在dockerized上安装自定义的REST插件

如何在dockerized上安装自定义的REST插件
EN

Stack Overflow用户
提问于 2021-09-26 10:01:24
回答 1查看 534关注 0票数 2

我试图在我的OpenSearch上安装自定义REST插件.

我用的是ubuntu 20

这是我的docker-compose.yml文件

代码语言:javascript
复制
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:
  • 运行码头-编写启动服务并运行良好

但我不知道怎么继续下去..。

这是插件布局(我从这里克隆的)

EN

回答 1

Stack Overflow用户

发布于 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添加到新目录:

代码语言:javascript
复制
FROM opensearchproject/opensearch:1.0.0
ADD ./my-plugin.zip /usr/
RUN /usr/share/opensearch/bin/opensearch-plugin install file:///usr/my-plugin.zip

ADD将将本地包添加到容器中,以便下一个命令可以使用它。RUN之后的脚本将将插件安装到OpenSearch中。

构建码头映像,添加一个标记将使以后的生活更加轻松:

代码语言:javascript
复制
docker build --tag=opensearch-with-my-plugin .

现在,您有一个开放搜索映像与您的插件安装在上面!

修复您最初发布的YAML文件,以便它使用正确的图像。这意味着将opensearchproject/opensearch:1.0.1替换为您生成的映像标记- opensearch-with-my-plugin。并将其添加到带有Dockerfile的目录中(在项目中不像您拥有的那样)。

我冒昧地将仪表板版本更改为1.0.0,因为我不确定它是否适用于图像的1.0.0。无论如何,这应该是一个坚实的开端!

代码语言:javascript
复制
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:

通过在终端中运行此命令进行验证,并确保您的插件已安装:)

代码语言:javascript
复制
curl -XGET https://localhost:9200/_cat/plugins -u 'admin:admin' --insecure

此外,我还创建了一个包含更多信息的插件的GitHub模板。您克隆的回购是我在编写插件时为我的博客帖子创建的,所以它是一个REST插件,但不是最普通的插件。

如果您在运行过程中仍然有问题,请在评论中告诉我,我很乐意提供帮助。

编辑:文件位置编辑了一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69333800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档