【发布时间】:2026-02-21 06:40:01
【问题描述】:
我正在创建一个包装脚本来执行我的 python 程序。逻辑是这样的:
- 我将在 docker 容器中安装所有需要的模块
- 拉取容器并运行脚本,这样任何人都可以运行我的脚本而不必担心依赖的模块
- 我创建了一个包装脚本,将调用它来执行所需的程序
这是我的包装脚本:
import os
import sys
import argparse
parse = argparse.ArgumentParser()
parse.add_argument('command', help="give datacenter name")
parse.add_argument('args', nargs=argparse.REMAINDER)
parse_arguments = parse.parse_args()
'''
Co-relate to the command and corresponding scripts to trigger
'''
scripts = {
'verify' : '/path/verify.py'
}
if __name__ == '__main__':
if parse_arguments.command not in scripts:
print('These are the available scripts to run:')
print('\n'.join(sorted(scripts.keys())))
else:
os.execv(scripts.get(parse_arguments.command),
[scripts.get(parse_arguments.command)] + parse_arguments.args) .
我正在运行这个,
$ docker run -it --rm --net host run-script verify --listenv tpc1
Traceback (most recent call last):
File "/path/runme.py", line 28, in <module>
os.execv(scripts.get(parse_arguments.command),
[scripts.get(parse_arguments.command)] + parse_arguments.args)
FileNotFoundError: [Errno 2] No such file or directory
我的 Docker 镜像是运行脚本
如果我在本地机器上运行相同的代码,它确实可以工作。但在容器内它显示此文件找不到错误。
谁能帮我解决这个问题?
【问题讨论】:
标签: python python-3.x docker argparse