首页 > 解决方案 > 从 Flask 容器执行主机操作系统命令

问题描述

我有运行 docker 容器的 Flask 应用程序,我必须从 Flask 应用程序运行主机操作系统命令,

如何从 Docker 容器执行主机操作系统命令?

我的 Docker 映像文件:

FROM python:3.8-slim
RUN mkdir /app
WORKDIR /app
ADD requirements.txt /app
RUN pip3 install -r requirements.txt
ADD . /app
RUN chmod +x ./entrypoint.sh
ENTRYPOINT ["sh", "entrypoint.sh"]

应用程序.py

import subprocess
from flask import Flask
app = Flask(__name__)

app.config['DEBUG'] = True

# Run host command from container
def run_os_cmd():
    return subprocess.checkout(["/usr/bin/some-cmd", "few-options"])

@app.route("/")
def hello_world():
    cmd_output = run_os_cmd()
    return cmd_output

if __name__ == "__main__":
    app.run(host='0.0.0.0')

主机是 Linux

请注意,我无法在 docker 容器中安装主机命令包。

标签: pythonlinuxdockerkubernetes

解决方案


推荐阅读