我试图通过简单地将它们写入文本文件的方式,使托管了(dockerized)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)
供参考,我Dockerfile
在同一个writer
目录中是:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句