我需要帮助使 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/
目录时,它可以工作,但是当我使用容器外的路径时,它不起作用。
你可以创建一个卷来做到这一点。
在您的 Dockerfile 中:
VOLUME /app/static_files
...
ENTRYPOINT ["python","main.py", "/app/static_files"]
在运行容器时,您必须使用参数指定静态文件的路径-p <path>:/app/static_files