我需要帮助使Flask使用目录中的图像(路径是使用argparse
通过程序参数传递的)。问题是,我需要与Docker配合使用以在容器内使用主机目录。
检查我的目录结构:
Static/0.png
main.py
烧瓶代码:main.py
import argparse
import flask
parser = argparse.ArgumentParser()
parser.add_argument("--path",default="static")
args = parser.parse_args()
app = Flask(__name__,static_folder=args.path)
app.route("/")
def init():
path = os.path.join(args.path,"0.png")
return "<img src="+path+"/>"
Dockerfile:
FROM python:3-onbuild
EXPOSE 5000
ENTRYPOINT ["python","main.py"]
观察到,当我在容器内使用Static/
目录时,它可以工作,但是当我在容器外使用路径时,则不能工作。
答案 0 :(得分:1)
您可以创建一个 VOLUME 来实现。
在您的Dockerfile中:
VOLUME /app/static_files
...
ENTRYPOINT ["python","main.py", "/app/static_files"]
在运行容器时,必须使用参数-p <path>:/app/static_files