我有一个烧瓶应用程序,使用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
我是否需要对整个工具链的任何部分进行任何更改,以便我能够正常工作?