2024-04-25 04:14:27 发布
网友
假设我在docker容器中有一个名为handler.py的文件(该容器尚未运行或从映像开始)。让图像名为testimage。在
handler.py
testimage
在handler.py中,我们有一个函数greet,这样
greet
def greet(username): print("Hello %s!"%(username))
现在我想从这个图像启动docker容器,这样我就可以在文件handler.py中调用这个函数greet,同时调用一个参数。我想在创建一个正在运行的容器时调用它。在
您可以在docker运行期间提供python脚本执行命令,如下所示:
docker run <image> python handler.py user username_value。在
docker run <image> python handler.py user username_value
并确保在中使用argparse处理了这些参数处理程序.py打你的问候电话。在
import argparse parser = argparse.ArgumentParser(description='') parser.add_argument(' user', help='username', required=True, type=str)
实际上你问了两件事。如何从命令行调用python文件中的函数。两个如何通过Docker做到这一点。在
第一次,在处理程序.py你需要一个主函数才能做到这一点。像这样的东西。在
import sys def greet(username): print("Hello %s!"%(username)) if __name__ == '__main__': greet(sys.argv[1])
运行它可以:
另一种更复杂的方法是使用OptionParser和基于它的开关。 根据您的用例,这两种方法都可以。在
对于docker,我想您不想更改入口点,而是要更改CMD。Dockerfile文件:
FROM python:2.7-alpine WORKDIR /app COPY handler.py . ENTRYPOINT ["/usr/local/bin/python2.7"] CMD ["/app/handler.py"]
建立形象:
$ docker build . -t local:dev
运行它,重写CMD:
CMD
$ docker run local:dev /app/handler.py itismemario Hello itismemario!
您可以在docker运行期间提供python脚本执行命令,如下所示:
docker run <image> python handler.py user username_value
。在并确保在中使用argparse处理了这些参数处理程序.py打你的问候电话。在
实际上你问了两件事。如何从命令行调用python文件中的函数。两个如何通过Docker做到这一点。在
第一次,在处理程序.py你需要一个主函数才能做到这一点。像这样的东西。在
运行它可以:
^{pr2}$另一种更复杂的方法是使用OptionParser和基于它的开关。 根据您的用例,这两种方法都可以。在
对于docker,我想您不想更改入口点,而是要更改CMD。Dockerfile文件:
建立形象:
运行它,重写
CMD
:相关问题 更多 >
编程相关推荐