使用docker run传递Python click选项至ENTRYPOINT时出现路径错误
问题解决:Docker容器内Click脚本参数传递错误
问题根源
你构建的镜像标签是hello:1.0.0,但运行命令docker run --rm -v $(pwd):/app hello -n Smith中使用的镜像名是hello,Docker会默认拉取/使用hello:latest镜像——这大概率是官方的hello-world镜像,而非你自己构建的包含Python脚本的镜像。官方hello-world镜像没有配置你的ENTRYPOINT,因此Docker会把-n当作要执行的命令,自然找不到这个可执行文件。
解决方案
方案1:运行时指定正确的镜像标签
修改Docker运行命令,明确指定你构建的镜像标签:
docker run --rm -v $(pwd):/app hello:1.0.0 -n Smith
方案2:构建时添加latest标签
构建镜像时同时指定1.0.0和latest标签,这样直接用hello就能运行自己的镜像:
docker build . -t hello:1.0.0 -t hello:latest
之后再执行原来的运行命令即可正常工作。
额外验证
你可以通过docker images命令查看本地镜像列表,确认hello镜像的不同标签对应的镜像ID是否一致,确保运行的是自己构建的镜像。
你的Dockerfile和Python脚本本身没有问题——移除参数后能输出Hello None,说明脚本和ENTRYPOINT配置是正常的,核心问题就是镜像标签不匹配导致运行了错误的镜像。
内容的提问来源于stack exchange,提问作者Razzle
相关产品推荐
相关产品推荐

