如何在ibmcloud函数中运行docker映像?

2024-06-16 09:56:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的Python程序,我想在ibmcloud函数中运行。唉,它需要两个库(O365和PySnow),所以我必须对它进行Dockerize,它需要能够接受来自STDIN的Json提要。我成功地做到了:

FROM python:3
ADD requirements.txt ./
RUN pip install -r requirements.txt
ADD ./main ./main
WORKDIR /main
CMD ["python", "main.py"]

运行时使用:cat env_var.json | docker run -i f9bf70b8fc89

我已经将Docker容器添加到IBM云函数中,如下所示:

ibmcloud fn action create e2t-bridge --docker [username]/e2t-bridge

但是当我运行它时,它超时了。在

现在我看到了一个可能的解决方案,我将它作为一个Openwhisk应用程序进行dockerize。但为此,我需要从Python应用程序中创建一个二进制文件,然后将其加载到一个相当复杂的Openwhisk框架中,我想呢?在

但是拥有一个可以简单运行的文件是我Docker的全部意义,所以创建一个解释语言的二进制文件,然后将其添加到Openwhisk Docker中,感觉非常笨拙。在

最好的办法是什么?在


Tags: 文件函数docker程序txtadd应用程序main
1条回答
网友
1楼 · 发布于 2024-06-16 09:56:29

事实证明,您不需要创建二进制文件,只需编辑OpenWhisk框架,如下所示:

# Dockerfile for example whisk docker action
FROM openwhisk/dockerskeleton

ENV FLASK_PROXY_PORT 8080

### Add source file(s)
ADD requirements.txt /action/requirements.txt
RUN cd /action; pip install -r requirements.txt

# Move the file to 
ADD ./main /action
# Rename our executable Python action
ADD /main/main.py /action/exec

CMD ["/bin/bash", "-c", "cd actionProxy && python -u actionproxy.py"]

并确保Python代码接受来自stdin的Json提要:

^{pr2}$

整个解释在这里:https://github.com/iainhouston/dockerPython

相关问题 更多 >