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

Docker Compose无法读取.env文件,Elastic Stack部署失败

解决Docker Compose读取.env变量失败的方案

1. 检查.env文件路径与命名

  • 确保.env文件和docker-compose.yaml完全在同一目录(你的场景是C:\Project Root\esk),文件名必须是.env,不能带任何后缀(比如避免Windows系统自动添加的.txt后缀),可在文件夹选项中开启“显示隐藏文件”和“显示文件扩展名”来确认。
  • 执行docker-compose up -d前,必须切换到esk目录下操作,不能在上级目录通过相对路径调用Compose,否则可能无法识别.env文件。

2. 修正.env文件格式

  • 变量定义不要加引号,正确写法示例:
    STACK_VERSION=8.10.0
    KIBANA_PORT=5601
    
    禁止写成STACK_VERSION="8.10.0"这类带引号的格式。
  • 变量名和值之间不能有空格,比如STACK_VERSION = 8.10.0这种带空格的写法会导致变量无法被识别。
  • 将文件换行符改为LF(Unix格式),可通过Notepad++等工具转换,避免Windows默认的CRLF格式干扰。

3. 强制指定.env文件路径

如果自动读取失效,执行命令时手动指定.env文件位置:

docker-compose --env-file ./.env up -d

若在WSL2终端操作,需将Windows路径转为WSL格式,比如C:\Project Root\esk对应/mnt/c/Project Root/esk,进入该目录后再执行上述命令。

4. 检查Docker Desktop的WSL集成设置

  • 打开Docker Desktop设置,进入Resources > WSL Integration,确保你正在使用的WSL发行版(如Ubuntu)已开启集成开关。
  • 重启Docker Desktop后,重新打开WSL终端执行部署命令。

5. 清除Docker Compose缓存

缓存异常可能导致变量读取混乱,执行以下命令清除缓存后重新部署:

docker-compose down -v
docker system prune -f
docker-compose up -d

6. 验证变量读取状态

在esk目录下执行以下命令,检查Compose是否能正确解析.env中的变量:

docker-compose config

若输出的配置中变量已被正确替换,说明读取正常,再执行启动命令即可。

内容的提问来源于stack exchange,提问作者punished ksen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:49:56