为什么在docker compose运行行上调用脚本作为参数时会忽略python脚本中的shebang?

为什么在docker compose运行行上调用脚本作为参数时会忽略python脚本中的shebang?,python,docker,shebang,Python,Docker,Shebang,我有一个码头集装箱。它包含一个非常简单的python脚本。下面是docker_compose.yml文件的外观: version: '3' services: my_container: image: my_container build: . entrypoint: "bash" 我启动容器。在容器内部,我运行如下脚本: $ docker-compose run my_container root@fe39e296c411:/# ls -altr test_sc

我有一个码头集装箱。它包含一个非常简单的python脚本。下面是docker_compose.yml文件的外观:

version: '3'

services:
  my_container:
    image: my_container
    build: .
    entrypoint: "bash"
我启动容器。在容器内部,我运行如下脚本:

$ docker-compose run my_container
root@fe39e296c411:/# ls -altr test_script_dir/test_script_file.py
-rwxr-xr-x 1 root root 98 Dec  4 10:22 test_script_dir/test_script_file.py

root@a3c9c8ff3b55:/# cat test_script_dir/test_script_file.py
#!/usr/bin/env python
def main():
    print "Hello World"

if __name__ == '__main__':
    main()

root@a3c9c8ff3b55:/# test_script_dir/test_script_file.py
Hello World
但是我想启动这个容器并在一个命令中运行这个脚本。但当我尝试这样做时,它会出错:

docker-compose run my_container test_script_dir/test_script_file.py
test_script_dir/test_script_file.py: line 2: syntax error near unexpected token `('
test_script_dir/test_script_file.py: line 2: `def main():'

看起来像是雪邦/当我尝试通过在
docker compose run
末尾附加的命令传入脚本时,usr/bin/env python被忽略,而不是被执行。为什么?我怎样才能让它工作?是否未设置某些环境变量?

容器中的
入口点是什么?@johrsharpe,我编辑了该问题以显示我的
docker\u compose.yml
文件
entrypoint:“bash”
现在开始,
docker compose运行我的容器测试脚本目录/test脚本文件.py
与启动容器然后运行
bash测试脚本目录/test脚本文件.py
-与直接作为脚本执行文件不同,不使用shebang。