如何修正Dockerfile以正确接收命令行参数?
问题分析与解决
核心问题:Docker Run命令参数顺序错误
你当前的docker run命令把环境变量参数-e放在了镜像名称之后,这会导致这些-e参数被当成容器启动命令的附加参数,而非Docker运行时的配置选项。Docker要求所有运行选项(如-v、-e、-it)必须放在镜像/容器名称之前。
修正后的Docker Run命令
docker run -it -v c:\analyze -e b=16 -e p=22 -e r=False containername
额外优化建议:ENTRYPOINT使用exec形式(可选)
当前你的ENTRYPOINT是shell形式,虽能解析环境变量,但如果需要传递信号(比如Ctrl+C终止容器),exec形式会更可靠。可以修改为:
ENTRYPOINT ["sh", "-c", "python analyze_all.py /analysispath -b $b -p $p -r $r"]
验证方法
启动容器后,可进入容器检查环境变量是否正确设置:
docker exec -it <container_id> env
查看输出中b、p、r的值是否与传入的一致。
内容的提问来源于stack exchange,提问作者Chris B. Behrens
相关产品推荐
相关产品推荐

