python - 从 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 容器中安装主机命令包。
解决方案
推荐阅读
- react-native - 如何在本机反应中获得图像的高度?
- solr - 两个文档之间的 Solr 连接查询
- java - 无法写入 JSON:无法通过反射设置字段值 [t]
- html - Bootstrap 响应式表垂直中断
- vue.js - gitHooks 在嵌套的 package.json 中不起作用
- ms-access - 我想通过查询取 MS Access 中多列的平均值
- delphi - TMutex 在 Delphi 中是可重入的吗?
- elasticsearch - 如何在弹性搜索中不包含敏感数据?
- java - bufferedReader.read() 被阻塞,但仅在某些设备上
- macos - 如何在 Mac 上为 Qemu 启用 KVM?