har*_*han 6 python containers image docker
假设我有一个在 docker 容器内调用的文件handler.py(尚未运行或从映像启动)。令图像名称为testimage。
在里面handler.py,我们有一个函数,greet这样
def greet(username):
print("Hello %s!"%(username))
Run Code Online (Sandbox Code Playgroud)
现在我想从此图像启动我的 docker 容器,以便我greet在文件内调用此函数handler.py以及参数。我想在创建正在运行的容器本身时调用它。
其实你问的是两件事。一种如何从命令行调用 python 文件中的函数的方法。两个如何通过 Docker 执行此操作。
首先,在 handler.py 中,您需要一个 main 函数才能执行此操作。例如这样的事情。
import sys
def greet(username):
print("Hello %s!"%(username))
if __name__ == '__main__':
greet(sys.argv[1])
Run Code Online (Sandbox Code Playgroud)
运行它给出:
$ python handler.py harshvardhan
Hello harshvardhan!
Run Code Online (Sandbox Code Playgroud)
另一种更复杂的方法是使用 OptionParser 并基于此进行切换。根据您的用例,两者都有效。
对于docker,我认为你不想改变入口点,而是改变CMD。Dockerfile:
FROM python:2.7-alpine
WORKDIR /app
COPY handler.py .
ENTRYPOINT ["/usr/local/bin/python2.7"]
CMD ["/app/handler.py"]
Run Code Online (Sandbox Code Playgroud)
构建图像:
$ docker build . -t local:dev
Run Code Online (Sandbox Code Playgroud)
运行它,覆盖CMD:
$ docker run local:dev /app/handler.py itismemario
Hello itismemario!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7920 次 |
| 最近记录: |