[英]How can I make a dockerized Flask app write output to file?
我試圖通過簡單地將它們寫入文本文件的方式,使托管了(碼頭化的)Flask應用程序的服務器“日志”請求發送到該服務器。
我docker-compose.yml
看起來像
version: '2'
services:
writer:
build: writer/
ports:
- 5000:5000
container_name: writer
在writer
目錄中,我有如下writer.py
文件,該文件應用於獲取請求並將其寫入本地文件feedback.txt
:
from flask import Flask, request, jsonify
app = Flask(__name__, static_url_path='')
@app.route('/feedback', methods=['POST'])
def log_feedback():
with open("feedback.txt","a") as fo:
fo.write(request.data.decode("utf-8"))
print(request.data.decode("utf-8"))
fo.write('\n')
return 'Got it!'
if __name__ == '__main__':
app.run(host='0.0.0.0', debug = False)
作為參考,我在同一writer
目錄中的Dockerfile
是:
FROM python:3.6-slim
WORKDIR /app
ADD . /app
RUN pip install -r requirements.txt
ENTRYPOINT [ "python", "writer.py" ]
requirements.txt
只是
flask
樣品要求是
curl -H "Content-Type:application" -X POST -d '{"Content":"Hello world"}' http://0.0.0.0:5000/feedback
不幸的是,沒有feedback.txt
被本地寫入(例如,在容器外部)。 您能否向我暗示我應該在docker-compose.yml
執行的修改(例如,帶有卷?),以便在服務器上編寫並訪問feedback.txt
?
您必須在docker-compose.yml中添加一個卷。 容器中的路徑應包含包含寫入文件的文件夾。 本地文件夾的路徑應包含您系統上要查看寫入文件的文件夾。
version: '2'
services:
writer:
build: writer/
ports:
- 5000:5000
container_name: writer
volumes:
- /PATH/TO/YOUR/LOCAL_FOLDER:/PATH/TO/FOLDER/IN/CONTAINER
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.