簡體   English   中英

在 uWSGI 實例中從燒瓶請求創建 docker 容器

[英]Create docker container from flask request in uWSGI instance

我有一個 docker 容器,它被設置為使用 selenium 執行一些給定的操作。 我的目標是在收到對使用燒瓶創建的某個端點的請求時創建 docker 容器。 已經使用這個tut使用 uWSGI 和 Nginx 設置了 Flask 應用程序。

當端點收到請求時,它應該運行 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 的地步時,它說:

泊塢窗:找不到命令

請注意,我可以手動進入 virtualenv,運行 python app.py,向flask 端點發送請求,然后創建 docker 容器,一切正常。

您可能需要在 bash 腳本中添加一個 PATH 變量,其中包括 docker 可執行文件的位置。 運行 NGINX 的用戶可能沒有設置路徑。

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

此外,您還需要確保運行 NGINX 的用戶有權使用 docker,因此將它們添加到 docker 組。

如果這是一項公共服務,那么我會仔細考慮您是否真的希望互聯網用戶在您的服務器上啟動容器,$1 是否來自用戶輸入?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM