gpt4 book ai didi

python - 通过带有参数的入口点函数启动 docker 容器

转载 作者:行者123 更新时间:2023-12-01 00:59:01 24 4
gpt4 key购买 nike

假设我在 docker 容器内有一个名为 handler.py 的文件(尚未运行或从镜像启动)。让图像名称为 testimage

handler.py中,我们有一个函数greet,这样

def greet(username):
print("Hello %s!"%(username))

现在我想从此图像启动我的 docker 容器,以便我在文件 handler.py 中调用此函数 greet 以及参数。我想在创建正在运行的容器本身时调用它。

最佳答案

实际上你问的是两件事。一种如何从命令行调用 python 文件中的函数的方法。两种如何通过 Docker 执行此操作的方法。

首先,在 handler.py 中,您需要一个 main 函数才能执行此操作。例如这样的事情。

import sys


def greet(username):
print("Hello %s!"%(username))

if __name__ == '__main__':
greet(sys.argv[1])

运行它会给出:

$ python handler.py harshvardhan
Hello harshvardhan!

另一种更复杂的方法是使用 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:

$ docker run local:dev /app/handler.py itismemario
Hello itismemario!

关于python - 通过带有参数的入口点函数启动 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55964312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com