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
关键点解析:
- 构建配置:使用上级目录中的Dockerfile构建镜像,并标记为
elasticsearch-hq:develop
版本 - 环境变量:
HQ_DEFAULT_URL
:默认连接的Elasticsearch地址,这里使用了Docker容器名称作为主机名HQ_DEBUG
:启用调试模式,便于开发时查看详细日志HQ_ENABLE_SSL
:启用SSL/TLS加密HQ_VERIFY_CERTS
:禁用证书验证(开发环境专用)HQ_CA_CERTS
:指定CA证书路径
- 端口映射:将容器内的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
关键点解析:
- 版本选择:使用Elasticsearch 2.4.6版本(与ElasticHQ兼容)
- 网络配置:
network.host
和network.publish_host
设置为0.0.0.0允许外部访问- 启用了CORS(跨域资源共享),便于前端开发
- 性能优化:
- 设置内存锁定防止交换内存影响性能
- 配置JVM堆内存为1GB
- 数据持久化:使用命名卷
esdata1
持久化Elasticsearch数据
网络与存储配置
volumes:
esdata1:
driver: local
networks:
esnet:
driver: bridge
- 网络配置:创建名为
esnet
的桥接网络,使两个服务可以相互通信 - 存储配置:使用本地驱动创建持久化卷,确保Elasticsearch数据不会随容器销毁而丢失
开发注意事项
- 代码变更处理:修改代码后需要执行
docker system prune -a
或docker-compose build
重建镜像 - 服务连接:ElasticHQ默认使用
elasticsearch
作为容器名称连接Elasticsearch服务 - SSL配置:开发环境禁用了证书验证,生产环境应配置有效证书
使用建议
- 启动服务:
docker-compose -f docker-compose-local-dev.yml up -d
- 访问ElasticHQ:
http://localhost:5000
- 访问Elasticsearch:
http://localhost:9200
通过这份配置,开发者可以快速搭建一个完整的ElasticHQ开发环境,包含Elasticsearch实例和ElasticHQ管理界面,便于进行功能开发和测试。