gpt4 book ai didi

python - 如何使 Python Docker 镜像成为 OpenWhisk 操作?

转载 作者:太空狗 更新时间:2023-10-30 02:41:33 26 4
gpt4 key购买 nike

我有一个运行 Python 程序的 Docker 镜像。我现在想将此容器作为 OpenWhisk 操作运行。我该怎么做呢?

我看过几个其他编程语言的例子,还有一个优秀的black box C 和 Node.js 中的框架方法。但我想更多地了解 OpenWhisk 如何与容器交互,如果可能的话,我想只使用 Python。

最佳答案

现在(2016 年 9 月)比我之前的回答简单多了。

在使用命令 $ wsk sdk install docker 创建了 dockerSkeleton 目录之后,您所要做的就是编辑 Dockerfile 并制作确保您的 Python(现在是 2.7)正在接受参数并以适当的格式提供输出。

这是一个总结。我已经写得更详细了here on GitHub

程序

文件 test.py(或 whatever_name.py,您将在下面编辑的 Dockerfile 中使用。)

  • 确保它是可执行的 (chmod a+x test.py)。
  • 确保第一行有 shebang。
  • 确保它在本地运行。
    • 例如./test.py '{"tart":"tarty"}'
      生成 JSON 字典:
      {"allparams": {"tart": "tarty", "myparam": "myparam default"}}
 
#!/usr/bin/env python

import sys
import json

def main():
# accept multiple '--param's
params = json.loads(sys.argv[1])
# find 'myparam' if supplied on invocation
myparam = params.get('myparam', 'myparam default')

# add or update 'myparam' with default or
# what we were invoked with as a quoted string
params['myparam'] = '{}'.format(myparam)

# output result of this action
print(json.dumps({ 'allparams' : params}))

if __name__ == "__main__":
main()

The Dockerfile

Compare the following with the supplied Dockerfile to take the Python script test.py and ready it to build the docker image.

Hopefully the comments explain the differences. Any assets (data files or modules) in the current directory will become part of the image as will any Python dependencies listed in requirements.txt

# Dockerfile for Python whisk docker action
FROM openwhisk/dockerskeleton

ENV FLASK_PROXY_PORT 8080

# Install our action's Python dependencies
ADD requirements.txt /action/requirements.txt
RUN cd /action; pip install -r requirements.txt

# Ensure source assets are not drawn from the cache
# after this date
ENV REFRESHED_AT 2016-09-05T13:59:39Z
# Add all source assets
ADD . /action
# Rename our executable Python action
ADD test.py /action/exec

# Leave CMD as is for Openwhisk
CMD ["/bin/bash", "-c", "cd actionProxy && python -u actionproxy.py"]

注意 ENV REFRESHED_AT ... 我用它来确保更新的 test.py 层被重新拾取而不是在图像已构建。

关于python - 如何使 Python Docker 镜像成为 OpenWhisk 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39154762/

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