在 python 脚本中使用什么正确的 shebang 用于 Dockerfile 中,以对抗官方的 python:3



我正在编写一个用于Dockerfile的python3脚本。它基于官方的python:3docker 中心映像。我发现我得到的结果好坏参半,这取决于我在脚本中使用的#!行。普遍接受的#!/usr/bin/env python3实际上不起作用。如果我使用/usr/sbin/python3就像是我系统上的默认值一样,它找不到我在上面做了pip3 install的一些导入的依赖项。似乎/usr/local/bin/python3是容器内路径中的第一个 python3。我希望脚本在容器内外都能舒适地运行。现在,我只是在Dockerfile中使用python3调用脚本并跳过整个混乱。

如何设置 SheBang 以获得最佳兼容性?

你需要简单地使用这个shebang:

#!/usr/bin/env python

对我来说,这很#!/usr/bin/python3我的 docker 容器的FROM命令是python:3.9

我通过在 docker 映像中四处寻找发现了这一点

docker run --rm -it --entrypoint=/bin/bash name-of-image

我使用cdls来查找 python 安装并使用该路径。

最新更新