Создать docker контейнер из flask запроса в экземпляре uWSGI - PullRequest
0 голосов
/ 19 марта 2020

У меня есть контейнер docker, который настроен на выполнение определенных действий с селеном. Моя цель - создать контейнер docker при получении запроса для определенной конечной точки, созданной с использованием flask. Приложение flask было настроено с использованием uWSGI и Nginx с использованием этого tut .

Когда конечная точка получает запрос, предполагается запустить сценарий 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: команда не найдена

Обратите внимание, я могу go в virtualenv вручную, запустить python app.py, отправить запрос на конечную точку flask и контейнер docker создано и все отлично работает.

1 Ответ

1 голос
/ 20 марта 2020

Возможно, вам нужно добавить переменную PATH в ваш bash скрипт, который включает в себя местоположение вашего docker исполняемого файла. Пользователь, работающий с NGINX, вероятно, не имеет установленного пути.

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

Также вам необходимо убедиться, что у пользователя, работающего с NGINX, есть разрешение на использование docker, поэтому добавьте его в группа docker.

Если это общедоступная c служба, то я бы тщательно подумал, действительно ли вы хотите, чтобы пользователи rnet запускали контейнеры на вашем сервере, получает ли $ 1 от пользователя вход

...