【问题标题】:Create docker container from flask request in uWSGI instance从 uWSGI 实例中的烧瓶请求创建 docker 容器
【发布时间】:2023-03-26 17:44:02
【问题描述】:

我有一个 docker 容器,它设置为使用 selenium 执行一些给定的操作。我的目标是在收到使用烧瓶创建的某个端点的请求时创建 docker 容器。烧瓶应用程序已使用此tut 设置了 uWSGI 和 Nginx。

当端点收到请求时,它应该运行 bash 脚本 ./run.sh:

#!/bin/bash

ID=$1

docker run --rm \
        -v $(pwd)/code:/code \
        -v /etc/hosts:/etc/hosts \
        selenium \
        python3 \
        /code/main.py ${ID}

我可以使用数字海洋提供的 IP 成功调用端点,但是当它到达需要运行 docker 的地步时,它会说:

docker:找不到命令

注意,我可以手动进入 virtualenv,运行 python app.py,向flask端点发送请求,然后创建 docker 容器,一切正常。

【问题讨论】:

    标签: python docker nginx virtualenv uwsgi


    【解决方案1】:

    您可能需要在 bash 脚本中添加一个 PATH 变量,其中包含 docker 可执行文件的位置。运行 NGINX 的用户可能没有设置路径。

    PATH=$PATH:/usr/local/bin:/usr/bin
    

    您还需要确保运行 NGINX 的用户有权使用 docker,因此请将他们添加到 docker 组。

    如果这是一项公共服务,那么我会仔细考虑您是否真的希望互联网用户在您的服务器上启动容器,1 美元是否来自用户输入?

    【讨论】:

    • 是的,你是对的。我在 docker 前面添加了“/bin/usr”,它现在可以工作了。谢谢
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 2017-07-19
    • 2018-02-02
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    相关资源
    最近更新 更多