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

通过docker run命令传递NEPTUNE_API_TOKEN环境变量异常问题

你的命令写法存在语法错误,不需要显式传入硬编码的令牌字符串,完全可以直接复用宿主机会话的已有环境变量,取值为空是因为你把Shell的变量替换语法写错了。

$(xxx)是Shell的命令替换语法,作用是执行括号内的命令、将命令的标准输出作为替换值。你写的$(NEPTUNE_API_TOKEN)会让Shell尝试查找并运行名为NEPTUNE_API_TOKEN的可执行程序,绝大多数系统下不存在这个命令,执行返回空结果,最终传入容器的变量值自然为空。

正确复用宿主机环境变量的方式

共有两种通用写法:

  • 仅向-e参数传递变量名,不追加等号和取值,Docker会自动从当前启动命令的Shell上下文中读取同名环境变量的值,注入到容器内部:
    docker run -e NEPTUNE_API_TOKEN <my_image>
    
  • 使用Shell标准变量取值语法手动传值,注意变量替换的前缀是$,不要额外加括号和命令替换语法混淆:
    docker run -e NEPTUNE_API_TOKEN=$NEPTUNE_API_TOKEN <my_image>
    

注意事项

  • 执行docker命令前,可以先在宿主机执行echo $NEPTUNE_API_TOKEN确认变量值可正常输出,避免宿主机本身变量未配置导致的传值为空问题。
  • 如果使用第一种自动读取的写法,需要确保NEPTUNE_API_TOKEN是已经通过export导出的全局环境变量;如果仅为当前Shell的局部未导出变量,需要使用第二种手动取值的写法。

内容的提问来源于stack exchange,提问作者A. Maman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:45:15