首页
/ ElasticHQ本地开发环境Docker Compose配置详解

ElasticHQ本地开发环境Docker Compose配置详解

2025-07-08 04:12:23作者:温艾琴Wonderful

概述

ElasticHQ是一个开源的Elasticsearch管理工具,提供了直观的Web界面来监控和管理Elasticsearch集群。本文将深入解析其本地开发环境的Docker Compose配置文件,帮助开发者快速搭建开发环境。

核心服务配置

1. ElasticHQ服务配置

elastichq:
  build:
    context: ../
    dockerfile: Dockerfile
  image: elasticsearch-hq:develop
  container_name: elastichq
  environment:
    - HQ_DEFAULT_URL=http://elasticsearch:9200
    - HQ_DEBUG=True
    - HQ_ENABLE_SSL=True
    - HQ_VERIFY_CERTS=False
    - HQ_CA_CERTS=/usr/local/share/ca-certificates/MYCA.crt
  ports:
    - 5000:5000
  networks:
    - esnet

关键点解析:

  1. 构建配置:使用上级目录中的Dockerfile构建镜像,并标记为elasticsearch-hq:develop版本
  2. 环境变量
    • HQ_DEFAULT_URL:默认连接的Elasticsearch地址,这里使用了Docker容器名称作为主机名
    • HQ_DEBUG:启用调试模式,便于开发时查看详细日志
    • HQ_ENABLE_SSL:启用SSL/TLS加密
    • HQ_VERIFY_CERTS:禁用证书验证(开发环境专用)
    • HQ_CA_CERTS:指定CA证书路径
  3. 端口映射:将容器内的5000端口映射到主机的5000端口

2. Elasticsearch服务配置

elasticsearch:
  image: elasticsearch:2.4.6
  container_name: elasticsearch
  environment:
    - cluster.name=elasticsearch
    - node.name=node_1
    - network.host=0.0.0.0
    - network.publish_host=0.0.0.0
    - bootstrap.memory_lock=true
    - http.cors.enabled=true
    - http.cors.allow-origin=*
    - http.host=0.0.0.0
    - transport.host=0.0.0.0
    - bootstrap.system_call_filter=false
    - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
  volumes:
    - esdata1:/usr/share/elasticsearch/data
  ports:
    - 9200:9200
    - 9300:9300
  ulimits:
    memlock:
      soft: -1
      hard: -1
  networks:
    - esnet

关键点解析:

  1. 版本选择:使用Elasticsearch 2.4.6版本(与ElasticHQ兼容)
  2. 网络配置
    • network.hostnetwork.publish_host设置为0.0.0.0允许外部访问
    • 启用了CORS(跨域资源共享),便于前端开发
  3. 性能优化
    • 设置内存锁定防止交换内存影响性能
    • 配置JVM堆内存为1GB
  4. 数据持久化:使用命名卷esdata1持久化Elasticsearch数据

网络与存储配置

volumes:
  esdata1:
    driver: local
networks:
  esnet:
    driver: bridge
  1. 网络配置:创建名为esnet的桥接网络,使两个服务可以相互通信
  2. 存储配置:使用本地驱动创建持久化卷,确保Elasticsearch数据不会随容器销毁而丢失

开发注意事项

  1. 代码变更处理:修改代码后需要执行docker system prune -adocker-compose build重建镜像
  2. 服务连接:ElasticHQ默认使用elasticsearch作为容器名称连接Elasticsearch服务
  3. SSL配置:开发环境禁用了证书验证,生产环境应配置有效证书

使用建议

  1. 启动服务:docker-compose -f docker-compose-local-dev.yml up -d
  2. 访问ElasticHQ:http://localhost:5000
  3. 访问Elasticsearch:http://localhost:9200

通过这份配置,开发者可以快速搭建一个完整的ElasticHQ开发环境,包含Elasticsearch实例和ElasticHQ管理界面,便于进行功能开发和测试。