我正在编写一个用于Dockerfile的python3脚本。它基于官方的python:3
docker 中心映像。我发现我得到的结果好坏参半,这取决于我在脚本中使用的#!
行。普遍接受的#!/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
我使用cd
和ls
来查找 python 安装并使用该路径。