You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Docker安装Solr 9.2时遭遇JAVA_HOME配置错误问题

解决Solr 9.2.1 Docker部署中JAVA_HOME路径不存在的问题

问题原因

Solr 9.x官方Docker镜像已内置符合要求的Java环境(Java 11+),但容器会默认继承宿主机的JAVA_HOME环境变量,导致Solr尝试访问宿主机的Java路径(如/opt/java/openjdk),而该路径在容器内部并不存在,从而触发启动错误。

解决方案

1. 在Docker Compose中显式清除JAVA_HOME

在每个Solr服务的environment字段中添加JAVA_HOME: "",覆盖并清除从宿主机继承的该变量,让Solr自动使用容器内置的Java环境:

修改后的Solr服务配置示例(以solr1为例):

solr1:
  image: solr:9.2.1
  container_name: solr1
  ports:
   - "8983:8983"
  environment:
    ZK_HOST: "zoo1:2181"
    SOLR_JAVA_MEM: "-Xms512m -Xmx2g"
    SOLR_HOST: "linux10"
    JAVA_HOME: ""  # 新增:清除继承的JAVA_HOME变量
  networks:
    - solr
  depends_on:
    - zoo1
  command: solr -f -cloud
  volumes:
    - solr1-data:/var/solr

对solr2服务做同样修改,添加JAVA_HOME: ""到环境变量配置中。

2. 排查额外的环境变量传递场景

检查是否存在以下情况导致宿主机JAVA_HOME被传入容器:

  • Docker Compose配置中使用了env_file加载包含JAVA_HOME的文件
  • 启动容器时通过--env-file参数或docker-compose run的--env选项传递了JAVA_HOME
  • Docker守护进程默认配置中自动传递JAVA_HOME变量

确保上述场景均未发生,避免宿主机环境变量干扰容器内部运行。

验证修改

执行命令重新部署:

docker-compose down
docker-compose up -d

查看Solr容器日志确认启动状态:

docker logs solr1

内容的提问来源于stack exchange,提问作者Subhasis Patra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 20:05:28