【问题标题】:IBM Cloud Functions: How to run a Docker function?IBM Cloud Functions:如何运行 Docker 函数?
【发布时间】:2021-05-03 05:49:04
【问题描述】:
FROM python:3.7
COPY ./src /data/python
WORKDIR /data/python
RUN pip install --no-cache-dir flask
EXPOSE 8080
CMD ["python", "main.py"]
  • main.py
import os
from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return {'body': os.environ.items()}


def run():
    app.run(host='0.0.0.0', port=8080)


if __name__ == '__main__':
    run()

点击调用结果

[
  "2021-01-29T09:53:30.727847Z    stdout: * Serving Flask app \"main\" (lazy loading)",
  "2021-01-29T09:53:30.727905Z    stdout: * Environment: production",
  "2021-01-29T09:53:30.727913Z    stdout: WARNING: This is a development server. Do not use it in a production deployment.",
  "2021-01-29T09:53:30.727918Z    stdout: Use a production WSGI server instead.",
  "2021-01-29T09:53:30.727923Z    stdout: * Debug mode: off",
  "2021-01-29T09:53:30.731130Z    stderr: * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)",
  "2021-01-29T09:53:30.747035Z    stderr: 172.30.139.167 - - [29/Jan/2021 09:53:30] \"\u001b[33mPOST /init HTTP/1.1\u001b[0m\" 404 -",
  "2021-01-29T09:53:30.748Z       stderr: The action did not initialize or run as expected. Log data might be missing."
]

我已将 Docker 容器添加到 IBM Cloud Functions

解决这个问题的最佳方法是什么?

【问题讨论】:

    标签: ibm-cloud ibm-cloud-functions ibm-cloud-code-engine


    【解决方案1】:

    上传到 IBM Cloud Functions 的 Docker 映像必须实现某些 REST 接口。实现这一点的最简单方法是将您的容器基于openwhisk/dockerskeletonimage。

    请看 How to run a docker image in IBM Cloud functions?https://github.com/iainhouston/dockerPython 了解更多

    【讨论】:

      【解决方案2】:

      IBM Cloud Functions 的文档在 how to create Docker-based functions 上有一些指针。恕我直言,云功能更适用于短期运行的无服务器工作负载,我想以IBM Cloud Code Engine 的形式向您指出另一种无服务器技术。它的模型基于 Docker 容器,其用例之一是基于 http 的 Web 应用程序,例如您的 Flask 应用程序。

      您可以根据需要定义 Dockerfile,不需要特殊的骨架,只需遵循此 guide on Dockerfile best practices for Code Engine

      【讨论】:

        猜你喜欢
        • 2019-10-19
        • 2019-05-18
        • 2021-06-05
        • 2018-06-14
        • 1970-01-01
        • 2018-12-23
        • 2020-07-18
        • 2018-07-20
        • 1970-01-01
        相关资源
        最近更新 更多