我是使用Docker的新手。我想使用微服務架構方法重建我的單片應用程序。使用Docker:如何扭曲Web應用程序與nginx Web服務器進行通信
我有一個需要與nginx服務器交互的Flask應用程序服務器。傳統上我們使用Gunicorn作爲uWSGI,但我們如何使用Docker做同樣的事情?
下面是我的代碼,
我具有長頸瓶的應用程序,要求用戶上傳的Excel文件
from flask import Flask, request, render_template
import os
app = Flask(__name__)
default_key = '1'
app.config["UPLOAD_FOLDER"] = "/app"
@app.route('/', methods=['GET', 'POST'])
def mainpage():
if request.method == 'POST':
print request.form
if request.method == 'POST' and request.form['submit'] == 'Check Results' :
#TODO: copy the file into named volume
f = request.files['file']
filename = f.filename
print os.getcwd()
print os.listdir(os.getcwd())
file1 = os.path.join(app.config['UPLOAD_FOLDER'], filename)
f.save(file1)
#TODO: ping the Classifier container
return render_template('index.html')
#def receive_classifier_info():
#TODO: the file has been received so succesfully display the message.
#pass
if __name__ == '__main__':
app.run(host='0.0.0.0')
這裏是我的模板/ index.html的
<html>
<head>
<title>key value lookup service</title>
</head>
<body>
<form method="POST" enctype = "multipart/form-data">
<br>
<h3>Select an input file</h3>
<input type="file" name="file" value="Browse">
<br>
<h3>Insert a pic of the sample format</h3>
<br>
<input type="submit" name="submit" value="Check Results">
</form>
</body>
</html>
接下來,這是我的Dockerfile來構建這個容器。
FROM python:2.7
RUN pip install Flask==0.11.1
RUN useradd -ms /bin/bash admin
COPY app /app
WORKDIR /app
RUN chown -R admin:admin /app
RUN chmod 755 /app
USER admin
CMD ["python", "app.py"]
接下來,我有我的nginx服務器充當反向代理。
我被困在如何從這裏開始。 :(
我的問題是:
1)我應該如何總結我的應用程序服務器,以確保它與nginx的容器進行通信。 - >我需要通知我的應用程序容器,每當用戶點擊提交按鈕通知它開始處理。 - >接下來,一旦處理完成,它應通知nginx服務器確定處理已完成。
2)我應該將index.html複製到/ var/www/nginx/html嗎?
謝謝
任何人都可以推薦一本書,詳細描述整個過程。謝謝 –