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

Makefile中传递环境变量至docker run命令失效问题排查

问题解决:Makefile传递Docker环境变量失效

问题原因

直接在Shell执行docker run -e DOC_PATH='test' my-python-app:1.0能正常传递环境变量,但通过Makefile执行时,Python读取DOC_PATH会触发KeyError。根源是Makefile对单引号的处理逻辑:Shell会将单引号作为字符串界定符解析并丢弃,但Makefile会保留单引号传递给docker,导致docker接收到的参数是DOC_PATH='test'(包含单引号),而非预期的DOC_PATH=test,最终环境变量未正确设置。

解决方案

修改Makefile中的环境变量写法,去掉单引号即可:

run:
	docker run -e DOC_PATH=test my-python-app:1.0

如果环境变量值包含空格或特殊字符,改用双引号包裹:

run:
	docker run -e DOC_PATH="test with spaces" my-python-app:1.0

也可以用Makefile变量统一管理值,提升可读性:

DOC_PATH_VALUE := test
run:
	docker run -e DOC_PATH=$(DOC_PATH_VALUE) my-python-app:1.0

验证

执行make run后,Python应用即可正常读取DOC_PATH环境变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:35:21