Supervisord运行烧瓶应用程序调用docker app

时间:2015-10-21 22:32:29

标签: python flask docker gunicorn supervisord

我有一个烧瓶应用程序,使用subprocess调用我的dockerized应用程序。

@app.route('/detect', methods=['POST'])
def detect_file():
    file = request.files['wireframe']
    if file and allowed_file(file.filename):
        filename = str(uuid.uuid4()) + getFileExtension(file.filename)
        file.save(os.path.join(app.config['UPLOAD_FOLDER'],
                    filename))
    p = subprocess.Popen(["docker","run","-v","/home/ganaraj/contours/upload:/detect","-w",
            "/detect","-it","--rm","opecv3", "./prediction",
                   filename ], stdout=subprocess.PIPE)
    output, err = p.communicate()
    return jsonify(result=output.rstrip())
    return jsonify(error='Mismatch file type')

当我自己运行烧瓶应用程序python app.py时,它运行正常。我从dockerized应用程序中获取结果。 当我直接使用gunicorn运行烧瓶应用程序gunicorn wsgi.py时,它也能正常工作。

当我通过gunicorn运行烧瓶应用程序并使用主管继续运行时 - 应用程序启动 - api的工作通常除了DOCKERIZED 部分。 我猜这与某种类型的权限有关,但我无法弄清楚究竟需要做些什么才能解决这个问题。

以下是我的supervisord.conf供参考。

[program:cvupload]
command = /root/anaconda/envs/cvuload/bin/gunicorn -b 0.0.0.0:9000 --debug --log-level debug wsgi:app
directory = /home/ganaraj/contours
user=root

我是否需要对整个工具链的任何部分进行任何更改,以便我能够正常工作?

0 个答案:

没有答案