首页
/ 使用Docker Compose快速部署appbaseio/dejavu与OpenSearch环境

使用Docker Compose快速部署appbaseio/dejavu与OpenSearch环境

2025-07-07 01:31:53作者:晏闻田Solitary

概述

appbaseio/dejavu是一个开源的Elasticsearch/OpenSearch数据浏览器,它提供了一个直观的Web界面,让用户能够轻松地浏览、搜索和管理存储在Elasticsearch或OpenSearch中的数据。本文将详细介绍如何使用Docker Compose快速搭建一个包含OpenSearch搜索引擎和dejavu浏览器的完整开发环境。

环境准备

在开始之前,请确保您的系统已经安装了以下软件:

  • Docker(版本17.12.0或更高)
  • Docker Compose(版本1.21.0或更高)

配置文件解析

下面我们来详细分析docker-compose.yml文件中的各个配置项:

OpenSearch服务配置

opensearch:
    image: opensearchproject/opensearch:2.17.0
    container_name: opensearch
    environment:
        - 'DISABLE_SECURITY_PLUGIN=true'
        - discovery.type=single-node
        - http.port=9200
        - http.cors.enabled=true
        - http.cors.allow-origin=http://localhost:1358,http://127.0.0.1:1358
        - http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
        - http.cors.allow-credentials=true
        - bootstrap.memory_lock=true
        - 'ES_JAVA_OPTS=-Xms512m -Xmx512m'
    ports:
        - '9200:9200'
        - '9300:9300'
    ulimits:
        memlock:
            soft: -1
            hard: -1
    volumes:
        - './data_os:/usr/share/opensearch/data'

关键配置说明:

  1. 镜像版本:使用了OpenSearch 2.17.0版本,这是一个稳定且功能丰富的版本。

  2. 安全插件:通过DISABLE_SECURITY_PLUGIN=true禁用了安全插件,简化了开发环境的配置。

  3. 单节点模式discovery.type=single-node配置使OpenSearch以单节点模式运行,适合开发和测试环境。

  4. CORS配置:启用了跨域资源共享(CORS),并配置了允许的来源和头部信息,确保dejavu能够正常访问OpenSearch。

  5. 内存设置

    • 通过bootstrap.memory_lock=true锁定内存,提高性能
    • ES_JAVA_OPTS设置了JVM堆内存为512MB
  6. 数据持久化:将容器内的数据目录挂载到宿主机的./data_os目录,确保数据不会因容器重启而丢失。

Dejavu服务配置

dejavu:
    image: appbaseio/dejavu:latest
    container_name: dejavu
    ports:
        - '1358:1358'
    links:
        - opensearch

关键配置说明:

  1. 最新镜像:使用dejavu的最新稳定版本。

  2. 端口映射:将容器内的1358端口映射到宿主机的1358端口,用户可以通过http://localhost:1358访问dejavu界面。

  3. 服务链接:通过links配置确保dejavu容器能够访问opensearch容器。

部署步骤

  1. 创建一个新目录,将上述docker-compose.yml文件保存到该目录中。

  2. 打开终端,导航到该目录,运行以下命令启动服务:

    docker-compose up -d
    
  3. 等待Docker下载镜像并启动容器。完成后,您可以通过以下方式访问服务:

    • OpenSearch: http://localhost:9200
    • Dejavu: http://localhost:1358
  4. 在Dejavu界面中,连接OpenSearch时使用以下配置:

    • URL: http://opensearch:9200
    • 其他认证信息保持为空(因为我们禁用了安全插件)

常见问题解决

  1. 内存不足错误

    • 如果遇到内存不足的问题,可以调整ES_JAVA_OPTS的值,例如改为-Xms256m -Xmx256m
  2. 端口冲突

    • 如果9200或1358端口已被占用,可以修改docker-compose.yml中的端口映射配置,例如将9200:9200改为9201:9200
  3. 数据持久化

    • 确保宿主机的./data_os目录有足够的写入权限。

最佳实践

  1. 生产环境配置

    • 在生产环境中,建议启用OpenSearch的安全插件并配置适当的认证信息。
  2. 资源限制

    • 可以根据实际需求调整容器的资源限制,如CPU和内存限制。
  3. 网络配置

    • 在生产环境中,建议使用自定义的Docker网络而不是默认的链接(links)方式。

总结

通过本文介绍的Docker Compose配置,您可以快速搭建一个包含OpenSearch搜索引擎和dejavu浏览器的完整开发环境。这种部署方式简单高效,特别适合开发人员快速搭建本地测试环境。对于生产环境,建议根据实际需求进行适当的调整和安全加固。